使用MFC过程中遇到的问题以及解决方法(一)
2017-03-08 15:23
645 查看
在自己工作的过程中,遇到了有关于C和C++的一些问题,在这里记录一下,以防止后期的编码过程中被同样的问题难住.
首先记录一下今天遇到的问题吧:
1.有关于MFC多线程更新UI(利用消息机制)的问题
第一步,应该先在主界面中创建一个独立的对象,例如要实现一个字符串的消息传递,就再头文件中定义一个字符串,在这里我要传递的是生成Excel的进度值. ,所以我定义的字符串为 CString ExcelUpdateStr ;
第二步,建立自己定义的消息ID,如果本消息只在当前对话框中进行,可以在当前对话框的源文件顶头部分定义 #define MSG_UPDATE_TEXT
1001.
第三步,定义自己的消息函数,afx_msg LRESULT OnUpdateText(WPARAM wp,LPARAM lp);,并在对话框的消息映射列表中进行消息的映射ON_MESSAGE(MSG_UPDATE_TEXT,&DownloadDlg::OnUpdateText),这里需要注意的ON_MESSAGE表示该MESSAGE是自己定义的.
第四步,进行自定义消息函数的编写,根据自己的实际需求进行编写
LRESULT DownloadDlg::OnUpdateText(WPARAM wp,LPARAM lp){
EDIT_DOWNLOAD_TEST_CONTENT=ExcelUpdateStr;
UpdateData(FALSE);
return 0L;
}
通过该函数,即可在子线程中调用
dlg->ExcelUpdateStr = tempStr;
dlg->PostMessageA(MSG_UPDATE_TEXT,NULL,NULL);
通过该方法的调用,将消息传递给主线程,并实时进行UI的更新
首先记录一下今天遇到的问题吧:
1.有关于MFC多线程更新UI(利用消息机制)的问题
第一步,应该先在主界面中创建一个独立的对象,例如要实现一个字符串的消息传递,就再头文件中定义一个字符串,在这里我要传递的是生成Excel的进度值. ,所以我定义的字符串为 CString ExcelUpdateStr ;
第二步,建立自己定义的消息ID,如果本消息只在当前对话框中进行,可以在当前对话框的源文件顶头部分定义 #define MSG_UPDATE_TEXT
1001.
第三步,定义自己的消息函数,afx_msg LRESULT OnUpdateText(WPARAM wp,LPARAM lp);,并在对话框的消息映射列表中进行消息的映射ON_MESSAGE(MSG_UPDATE_TEXT,&DownloadDlg::OnUpdateText),这里需要注意的ON_MESSAGE表示该MESSAGE是自己定义的.
第四步,进行自定义消息函数的编写,根据自己的实际需求进行编写
LRESULT DownloadDlg::OnUpdateText(WPARAM wp,LPARAM lp){
EDIT_DOWNLOAD_TEST_CONTENT=ExcelUpdateStr;
UpdateData(FALSE);
return 0L;
}
通过该函数,即可在子线程中调用
dlg->ExcelUpdateStr = tempStr;
dlg->PostMessageA(MSG_UPDATE_TEXT,NULL,NULL);
通过该方法的调用,将消息传递给主线程,并实时进行UI的更新
相关文章推荐
- 使用MFC过程中遇到的问题以及解决方法(二)
- 使用MFC过程中遇到的问题以及解决方法(三)
- Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决
- Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决
- Ubuntu(17.04)使用过程中遇到的问题以及解决方法
- RFT使用过程中遇到的问题的解决方法(一)
- vlc 嵌入到 MFC 使用步骤以及相关问题解决方法
- 使用Ubuntu遇到的问题以及解决方法(持续更新)
- JS/Jquery使用过程中遇到的问题和解决方法
- 使用debmirror为Debian建立本地源的方法,以及遇到的GPG key验证错误问题的解决方法
- pip的安装以及在安装的过程中遇到的问题及解决方法
- ubuntu server14.04LTS下手动模拟DNS并配置虚拟主机以及配置过程遇到的问题的解决方法
- 关于ArrayList使用时常遇到的问题以及解决方法
- 生产环境使用elasticsearch遇到的一些问题以及解决方法(不断更新)
- erlang的dialyzer使用中遇到的问题,以及解决方法
- 使用JDBC连接数据库遇到的问题,以及查找到的解决方法
- linux使用过程中遇到的问题和解决方法
- sofia sip开发六 寻找开发过程中遇到sofia sip库使用问题的解决方法
- 3D商城服务器开发过程中遇到的问题,原因以及解决方法。。。
- 使用ArcGIS GP服务遇到的问题,原因以及解决方法 - 客户端API开发(Javascript/Flex/Silverlig 转载