现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

VC++界面编程总结(七)

2012-08-09 02:51 工业·编程 ⁄ 共 1344字 ⁄ 字号 暂无评论

三一、文件查找:(例查找连续的换行符)
FILE *fp,*fp1;
int flag=0;
int ch;
fp=fopen("c://test.txt","r");
fp1=fopen("c://wrttest.txt","w");
while(!feof(fp))
{
  ch=fgetc(fp);
  if(feof(fp))
   break;
  if(ch==’/n’&&flag==1)
   continue;
  else if(ch==’/n’&&flag==0)
   flag=1;
  else
   flag=0;
  fputc(ch,fp1);
}
fclose(fp1);
fclose(fp);

三二、托盘菜单不点击不能消失的解决办法:

在菜单之后使用下述代码:
        CPoint pt;
        GetCursorPos(&pt);
        SetForegroundWindow();
        NotifyMenu.TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this);
        PostMessage(WM_NULL,0,0);

三三、对话框由小到大显示的动画效果:

在InitDialog中增加:
ShowWindow(SW_HIDE);
CRect dlgRect;
GetClientRect(&dlgRect);
CPoint centerPoint;
centerPoint.x=dlgRect.Width()/2;
centerPoint.y=dlgRect.Height()/2;//得到对话框的中点坐标
CRgn testrgn;
this->ShowWindow(SW_HIDE);  
int m=GetSystemMetrics(SM_CYSIZEFRAME);
//以下代码实现对话框的动态弹出
for (int i=10;i<dlgRect.Width()/2+m;i+=1)
{   
  testrgn.CreateRectRgn(centerPoint.x-i,centerPoint.y-i,centerPoint.x+i,centerPoint.y+i);
  SetWindowRgn((HRGN) testrgn,TRUE);
  ShowWindow(SW_SHOW);
  CenterWindow();
  testrgn.DeleteObject();
}

三四、按行读出文本文件:

下面的例子演示了一行一行取,直到取完。
CStdioFile myFile;
   CString ReadFileString;
if(myFile.Open("C://Readme.txt", Cfile::modeRead) == TRUE)
{
  while(myFile.ReadString(ReadFileString) != FALSE)
  {
                      //... 处理代码
                   }
           }

三五、使用IDC_HAND时提示未定义,加入以下代码:

#if(WINVER >= 0x0500)
#define IDC_HAND            MAKEINTRESOURCE(32649)
#endif /* WINVER >= 0x0500 */

给我留言

留言无头像?