使用MFC过程中遇到的问题以及解决方法(一)

在自己工作的过程中,遇到了有关于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的更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值