工作知识小计–MFC
付参考资料网站:http://www.jizhuomi.com/software/257.html
- UpdateData()函数参数bSaveAndValidate用于指示数据传输的方向,TRUE表示从控件传给变量,FALSE表示从变量传给控件。
- Ctrl+D,对话框模板上就会显示各个控件的Tab顺序数字;从自己认为Tab顺序应该为1的控件开始依次单击,随着单击的完成,各控件的Tab响应顺序也按我们的想法设置好了。
- DoModal()函数为弹出对话框的操作,同时返回DoModal函数的返回值,返回的值即为退出时点击按钮的ID;
-
属性向导页启用next和back按钮用“|”号,例如:
pSheet->SetWizardButtons(PSWIZB_BACK|PSWIZB_NEXT);//PSWIZB_NEXT:启用“BACK和Next”按钮
- 一般属性页对话框和向导对话框的创建和显示的不同包括,是否需要OnSetActive和OnWizardFinish等重载函数,是否需要调用属性表类的SetWizardMode函数设置为向导对话框模式。
// 设置属性对话框为向导对话框
sheet.SetWizardMode();//启用该函数则为向导页。
6.文件读取,用CFile构造的文件,在调用write()和read()函数时,需传入char的buff,而从静态编辑框读取或显示的为CString,但从string转换为char数组或指针时很麻烦,此时可以使用CStdioFile类构造文件类,直接调用WriteString()和ReadString(),填入CString的字符串即可,比较方便,特此标记。
CFile文件操作见“鸡啄米”,网址:http://www.jizhuomi.com/software/234.html
7.多线程,使用AfxBeginThread()函数调用线程函数,函数定义和参数说明如下:
函数原型:
CWinThread* AfxBeginThread(
AFX_THREADPROC pfnThreadProc/*线程函数地址,一般传入函数名即可*/,
LPVOID pParam /*线程参数,应该是传入线程函数的参数,有时需要另建结构体穿多个参数,在线程中进行类型强转变为你自己需要的参数*/,
int nPriority =THREAD_PRIORITY_NORMAL /*线程优先级*/,
UINT nStackSize = 0/*线程堆栈大小默认为1M*/,
DWORD dwCreateFlags = 0,
LPSECURITY_ATTRIBUTES
lpSecurityAttrs = NULL );
参考链接: https://blog.csdn.net/xiaohuihui52309/article/details/52249507.
8.MFC char*和CString之间的转换
//char * 与 CString之间的转换 C++ string .c_str();
//char* -> CString
char * p3 = "ccc";
CString str = CString(p3);
//CString -> char *
CStringA tmp;//调用CStringA间接转换
tmp = str;
char * pp = tmp.GetBuffer();
9.MFC c++代码操作Excel打开表格、读写数据:
参考:傻瓜式教学:c++操作Excel
链接: https://blog.csdn.net/android_lover2014/article/details/52755841.