




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. Format格式化字符串:str.Format(%d*%d=%dn, a, b, a * b);输出是10 * 100 = 1000另总结一下Format的用法: Format(x=%d,12);/x=12/最普通 Format(x=%3d,12);/x=12/指定宽度 Format(x=%f,12.0);/x=12.00/浮点数 Format(x=%.3f,12.0);/x=12.000/指定小数 Format(x=%8.2f12.0)/x=12.00; Format(x=%.*f,5,12.0);/x=12.00000/动态配置 Format(x=%.5d,12);/x=00012/前面补充0 Format(x=%.5x,12);/x=0000C/十六进制 Format(x=%1:d%0:d,12,13);/x=1312/使用索引 Format(x=%p,nil);/x=00000000/指针 Format(x=%1.1e,12.0);/x=1.2E+001/科学记数法 Format(x=%,);/x=%/得到% S:=Format(%s%d,S,I);/S:=S+StrToInt(I);/连接字符串指针访问多维数组;数据结构中的哈希表; 2. atoi函数:atoi函数原型:int atoi(char *str)函数用途: 将字符串转换成一个整数值输入参数: str 待转换为整型数的字符串;成功返回转换后的数值,失败则返回0str = 31412764;value = atoi( str );printf( Function: atoi( %s ) = %dn, str, value );3. 代码更改STATIC控件的caption方法:GetDlgItem(IDC_STATIC)- SetWindowText(_T( 你要写的字串 );updata(False);4. 在对话框上动态添加一个按钮:在Resource.h中添加资源IDCButton testbn;testbn.Create( _T(测试按钮),WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON,CRect (0,0,30,20),this,ID_BUTTON_TEST);其中WS_VISIBLE表示创建的按钮是可见的,WS_CHILD表示按钮是个子窗口,WINDOWS中的控件都可以看作是一个个窗口,你创建的DIALOG就是一个父窗口,所有在它上面的控件都是其子窗口5. memset:常用于内存空间初始化:char str100; memset(str,0,100);int array5 = 1,4,3,5,2;for(int i = 0; i 5; i+)coutarray ;coutendl; /输出结果:1 4 3 5 2memset(array,0,5*sizeof(int);for(int k = 0; k 5; k+)coutarrayk ;coutendl; /输出结果:0 0 0 0 0memset(array,1,5*sizeof(int);/ 注意 这里与上面的程序不同for(int k = 0; k 5; k+) coutarrayk ;coutendl; /输出结果:16843009 16843009 16843009 16843009 16843009因为memset是以字节为单位就是对array指向的内存的5个字节进行赋值,每个都用ASCII为1的字符去填充,转为二进制后,1就是00000001,占一个字节。一个INT元素是4字节,合一起就是1000000010000000100000001,就等于16843009,就完成了对一个INT元素的赋值了。6. 删除本地磁盘文件:DeleteFile(C:autoexec.bat);7. “是、否”选择判断:if (AfxMessageBox(确定退出程序?,MB_YESNO)=IDNO)return;8. 判断指定文件夹下某个文件是否存在:需要在头文件中加入 #include shlwapi.hif(!PathFileExists(G:DownLoadTemplates FolderKuGou2010.exe)AfxMessageBox(文件不存在!);9. 创建.txt文件FILE *fp=fopen(G:OralbotDownloaderdebug UserInfo.txt,wt);if (fp)fclose(fp);10. ini文件操作:int x=:GetPrivateProfileInt(DownAllClasses,num,0,d:Classes.ini);/读取整数CString str=:GetPrivateProfileString(i,SubjectPrice,chPrice,100, d:Classes.ini”) /读取字符串:WritePrivateProfileSection(i,NULL, d:Classes.ini”);/删除一项纪录:WritePrivateProfileString(i,FileSize,strFileSize, d:Classes.ini”);/写入一项纪录 11. 比较字符串是否匹配:int i;i=strcmp(a,b); /i=-1012. 获取文件属性:CFileStatus status;CFile:GetStatus(strFilePathName,status);/ 第一个参数为文件路径,第二个参数为获取到的文件属性值;13. 刷新窗口:方法一:GetDlgItem(IDC_STATIC_PRICE)-GetParent()-RedrawWindow();/问题:有时窗口刷新太频繁,会出现闪烁方法二:/局部刷新,自定义函数,在需要刷新的地方调用该函数;void YourDlg:RefreshControl(UINT uCtlID)CRect rc;GetDlgItem(uCtlID)-GetWindowRect(&rc);ScreenToClient(&rc);InvalidateRect(rc);14. 设置对话框透明,控件不透明:OnInitDialogSetWindowLong(this-GetSafeHwnd(),GWL_EXSTYLE, GetWindowLong (this-GetSafeHwnd(),GWL_EXSTYLE)0x80000);HINSTANCE hInst = LoadLibrary(User32.DLL);if(hInst)Typedef BOOL(WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);MYFUNC fun = NULL;/取得SetLayeredWindowAttributes函数指针fun=(MYFUNC)GetProcAddress(hInst, SetLayeredWindowAttributes);if(fun)fun(this-GetSafeHwnd(),RGB(255,255,255),255,1);FreeLibrary(hInst); OnPaintCRect rect;CPaintDC dc(this);GetClientRect(rect);dc.FillSolidRect(rect,RGB(255,255,255);CDialog:OnPaint();15. 设置静态文本透明HBRUSH CDlgSubjects:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);switch(pWnd-GetDlgCtrlID()case IDC_STATIC_PAGE:pDC-SetBkMode(TRANSPARENT);/pDC-SetTextColor(RGB(0,0,0);return (HBRUSH)GetStockObject(HOLLOW_BRUSH);break;default: break;return hbr;16. 复制文件到指定的文件夹void main()char pFrom256; CString path = D:SRCvc6.0CopyFileVC ; /源目录CString newpath = D:SRCDrillData ; /目标目录memset(pFrom, 0x00, 256); strcpy(pFrom, path); / 第一个文件 char pTo256; memset(pTo, 0x00, 256); strcpy(pTo, newpath); / 第一个文件 SHFILEOPSTRUCT sfo; sfo.hwnd = NULL; sfo.wFunc = FO_COPY; sfo.pFrom = pFrom; sfo.pTo = pTo; sfo.fFlags=FOF_SILENT|FOF_NOCONFIRMATION| FOF_NOCONFIRMMKDIR; SHFileOperation(&sfo);17. 添加托盘图标:在VC+中,想实现最小化MFC程序的时候,最小化到系统托盘,需要调用NOTIFYICONDATA类下面我们就来讲解一下如何简单实现一个系统托盘 我们以对话框程序为列第一步:在Dlg类中/定义一个NOTIFYICONDATA类的成员变量,用来设置托盘 NOTIFYICONDATA NotifyIcon;第二步:声明一个消息响应函数 afx_msg void OnNotifyIcon(WPARAM wParam,LPARAM IParam);在vc2005中afx_msg LRESULT OnNotifyIcon(WPARAM wParam, LPARAM lParam);需要把返回值设置为LRESULT,且在该函数的定义中无论参数wParam、lParam有没有用到,都要有return TRUE;语句。 第三步:定义一个自定义消息 #define WM_NC WM_USER+1注册消息 ON_MESSAGE(WM_NC,&CxxDlg:OnNotifyIcon)第四步:在Dlg头文件中添加一个函数 用来响应点击最小化按钮 void changeMini();并在Dlg类中实现这个函数/响应最小化消息 void CChangeScreenDlg:changeMini() ShowWindow(SW_HIDE); NotifyIcon.cbSize=sizeof(NOTIFYICONDATA); NotifyIcon.hIcon=AfxGetApp()-LoadIcon(IDR_MAINFRAME); NotifyIcon.hWnd=m_hWnd; lstrcpy(NotifyIcon.szTip,MediaCraft EMMG); NotifyIcon.uCallbackMessage=WM_NC; NotifyIcon.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP; Shell_NotifyIcon(NIM_ADD,&NotifyIcon); 第五步:截获最小化事件 在Dlg类中找到OnSysCommand函数 修改代码如下 if (nID & 0xFFF0) = IDM_ABOUTBOX) CAboutDlg dlgAbout; dlgAbout.DoModal(); /拦截最小化事件 if(nID=SC_MINIMIZE) /ToTray(); /用我们自己的消息响应最小化事件 changeMini(); else CDialog:OnSysCommand(nID, lParam); 第六步:响应托盘的鼠标事件 也是实现我们第二部声明的消息响应函数void CChangeScreenDlg:OnNotifyIcon(WPARAM wParam,LPARAM IParam) if (IParam = WM_LBUTTONDOWN) | (IParam = WM_RBUTTONDOWN) ModifyStyleEx(0,WS_EX_TOPMOST); ShowWindow(SW_SHOW); 最后一步:在类的析构函数中 记得销毁托盘图标对象 Shell_NotifyIcon(NIM_DELETE, &NotifyIcon);18. 创建文件夹:CString str=“d:xxyy”;int temp=0;temp=:_mkdir(str);/只有在“ d:xx”存在时才能创建成功;19. ShellExecute使用:/自动解压文件ShellExecute(NULL,open,C:Program FilesWinRARWinRAR.exe,x -y G:rarInterFace.rar,F:rar,SW_HIDE); /打开网页;ShellExecute(this-m_hWnd,open,, SW_SHOW );/激活相关程序,发送EMAILShellExecute(this-m_hWnd,open,mailto:,SW_SHOW );/用系统打印机打印文档ShellExecute(this-m_hWnd,print,c:abc.txt, SW_HIDE);/用系统查找功能来查找指定文件ShellExecute(m_hWnd,find,d:nish,NULL,NULL,SW_SHOW);/启动一个程序,直到它运行结束SHELLEXECUTEINFO ShExecInfo = 0;ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;ShExecInfo.hwnd = NULL;ShExecInfo.lpVerb = NULL;ShExecInfo.lpFile = c:MyProgram.exe;ShExecInfo.lpParameters = ;ShExecInfo.lpDirectory = NULL;ShExecInfo.nShow = SW_SHOW;ShExecInfo.hInstApp = NULL;ShellExecuteEx(&ShExecInfo);WaitForSingleObject(ShExecInfo.hProcess,INFINITE);20. MFC对话框去掉标题栏拖动窗口:把对话框属性的Border设置为None,Style设置为Popup,若想能再次拖动窗口,需添加消息WM_NCHITTEST,函数返回值:return HTCAPTION;21. Combo Box增加下拉框内容:CComboBox m_CBoxName;m_CBoxName.AddString(“张三”);m_CBoxName.AddString(“李四”);默认选中第一项:m_CBoxName.SetCurSel(0);ShowDropDown /自动下拉,寻找匹配项22. CMenu menu; menu.LoadMenu(IDR_MENU1); CMenu* pM=menu.GetSubMenu(0); 方式一: CPoint pt; GetCursorPos(&pt); pM-TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);方式二:CRect rect;m_button66.GetWindowRect(&rect); pM-TrackPopupMenu(TPM_LEFTALIGN,rect.left,rect.bottom,this); 在生成的菜单上面右键 选择“添加事件处理程序” 在选项中选择添加位置 子菜单不能灰掉 Grayed 被vc的应用程序框架自动改掉了,在CMainFrame:OnCreate里加上这句话来禁止这种行为: this-m_bAutoMenuEnable = FALSE; 23. 按钮贴图:步骤:1. 按钮属性 Onwer Drew选上,按钮ID: IDC_BUTTON12. 定义private变量:CBitmapButton m_button;在初始化里边OnInitDialog() m_button.LoadBitmaps(IDB_BITMAP1, IDB_BITMAP2);/IDB_BITMAP1:平时;IDB_BITMAP2:按下m_button.SubclassDlgItem(IDC_BUTTON1, this);m_button.SizeToContent(); /窗口大小适应图片大小24. 获取静态文本控件上的内容:第一种方法:GetDlgItem(IDC_EDIT_USER)-GetWindowText(CString str);/将内容放进str;GetDlgItem(IDC_EDIT_USER)-SetWindowText(CString str);第二种方法:SetDlgItemText(IDC_EDIT_USER,111);设置文本内容GetDlgItemText(IDC_EDIT_USER,str); / 将内容放进str;25. 在一个对话框类中调用另一个对话框的成员变量if(dlgLogin.DoModal()=IDOK) /在此添加对另一个对话框的处理=dlg.; =dlg.; 出了这个括号就不行了。26. 自定义消息:(1) 手工定义消息,可以这么写#define WM_MY_MESSAGE(WM_USER+100);MS 推荐的至少是 WM_USER+100(2)写消息处理函数:WPARAM,LPARAM返回LRESULT.LRESULT CMainFrame:OnMyMessage(WPARAM wparam,LPARAM lParam)temp目录: Use GetTempPath/加入你的处理函数 irectory自定义消息可分为四步: 1、 在stdafx.h中加入一行代码 #define WM_MY_MESSAGE (WM_USER+100) /定义自已的消息 2、在xxx.h中加入 afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); /用于对自定义消息的处理(作为Cxxx类的成员函数) 3、在xxx.cpp中加入 ON_MESSAGE(WM_MY_MESSAGE,OnMyMessage) /用于将消息与消息处理函数联系起来(注意:此行代码应加到BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()之间)。 4、在xxx.cpp中加入 LRESULT CtestMessageDlg:OnMyMessage(WPARAM wParam, LPARAM lParam) . return TRUE; 27. MFC窗口传值:Dlg2 dlg; dlg.m_str2 = m_str1; / 将m_str1赋值给m_str2,Dlg2:m_str2是EDIT1需要显示的内容dlg.DoModal();28. 怎样在两个类中相互调用其成员定义两个类,一个对话框类,一个SOCKET类,首先:对话框类调用SOCKET类成员,然后SOCKET类获取对话框中某一控件的值。方法:可以直接调用成员函数,不需要加头文件。 socket类的h文件上加入对话框类的声明,而不是include对话框的h文件: class CMyDialog; class CMySocket private: CMyDialog *m_pDlg=new GetFunction(); ; 然后在socket的cpp文件中include对话框的h文件,就可以随意调用对话框类的成员。29. 对话框之间的消息传递在发消息对话框的类中增加SendMessage()函数发送消息,函数原型为::SendMessage(m_hWnd,WM_MY_MESSAGE,(LPARAM)(LPCTSTR)str_Name,0);/第一个参数为窗口句柄,本窗口句柄为this- m_hWnd,其他窗口用函数dlg.GetSafeHwnd()获取,且必须是用Create()创建的对话框;第二个参数为手动添加的自定义消息响应函数;后面两个为要传递的数据。在接收对话框类中接收消息:LRESULT CtestMessageDlg:OnMyMessage(WPARAM wParam, LPARAM lParam) CString m_strName=(CString)(LPCTSTR)wParam; . return TRUE; 30. 创建多级目录文件创建文件夹:int i_n=0;CString cstr_count10=0;/该函数用于创建多级目录文件,主要为创建文件夹服务CString CDlgDowned:create_folder(CString str)CString cstr_path=;int i_temp=0;if (!PathFileExists(str)cstr_path=str.Left(str.ReverseFind();cstr_counti_n=cstr_path;i_n+;if (!PathFileExists(cstr_path)create_folder(cstr_path);elsei_temp=:_mkdir(str);for (int i=i_n;i=3;i-)CString cs=cstr_counti-3;i_temp=:_mkdir(cs);return str;创建文件:if (!PathFileExists(str)/判断.ini文件是否存在,如不存在创建该文件FILE *fp=fopen(g_strModulePath+UserInfo.ini,wt);if (fp) /如果失败fp=NULL;fclose(fp);31. extern在其他类中也可以使用的全局变量1) 在一类的.cpp文件中定义 CString m_str001;2) 在该类的.h文件中类的外部声明 extern CString m_str001;3) 在stdafx.h文件中加入该类的头文件这样,在同一工程的其他类中,不用加该类的头文件就可以直接使用m_str001变量。32. 哈希表的使用映射表类(CMap)是MFC集合类中的一个模板类,也称作为“字典”,就像一种只有两列的表格,一列是关键字,一列是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 招商银行赣州市南康区2025秋招笔试性格测试题专练及答案
- 中国民航科学技术研究院2025年度面向社会公开招聘应届毕业生(第二期)笔试高频难、易错点备考题库及参考答案详解1套
- 平安银行株洲市醴陵市2025秋招笔试英文行测高频题含答案
- 民生银行武汉市蔡甸区2025秋招面试典型题目及参考答案
- 解析卷-公务员考试《常识》综合训练练习题
- 2025年期货从业资格之《期货法律法规》题库高频难、易错点100题模拟试题及参考答案详解【新】
- 广发银行福州市福清市2025秋招笔试英文行测高频题含答案
- 2025年放射治疗放射技术安全操作规范模拟考试卷答案及解析
- 中信银行广州市番禺区2025秋招笔试综合模拟题库及答案
- 2025年度延安市消防救援支队第一批次政府专职消防员招聘10模拟试卷附答案详解(精练)
- Kappa测试数据分析报告
- 安吉汽车物流运输优化方案全套
- 新教材-人教版高中物理选择性必修第一册 第一章 动量守恒定律 知识点考点重点难点提炼汇总
- 变更董事股东会决议
- 02jrc901b电子海图操作jan中文说明书
- 精选幼儿园体能大循环方案
- 全国中学生物理竞赛复赛实验考查
- 例谈小组合作学习在小学英语教学中的有效开展(讲座)课件
- 部编版五年级道德与法治上册第3课《主动拒绝烟酒与毒品》优秀课件【最新】
- 《认识分式》教学课件【初中数学】公开课
- 制造企业物料试用单
评论
0/150
提交评论