天天看点

工作知识小计--MFC

工作知识小计–MFC

付参考资料网站:http://www.jizhuomi.com/software/257.html

  1. UpdateData()函数参数bSaveAndValidate用于指示数据传输的方向,TRUE表示从控件传给变量,FALSE表示从变量传给控件。
  2. Ctrl+D,对话框模板上就会显示各个控件的Tab顺序数字;从自己认为Tab顺序应该为1的控件开始依次单击,随着单击的完成,各控件的Tab响应顺序也按我们的想法设置好了。
  3. DoModal()函数为弹出对话框的操作,同时返回DoModal函数的返回值,返回的值即为退出时点击按钮的ID;
  4. 属性向导页启用next和back按钮用“|”号,例如:

    pSheet->SetWizardButtons(PSWIZB_BACK|PSWIZB_NEXT);//PSWIZB_NEXT:启用“BACK和Next”按钮

  5. 一般属性页对话框和向导对话框的创建和显示的不同包括,是否需要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.