2 wh230308 wh230308 于 2015.05.28 10:58 提问

MFC更新界面,用哪种方式好
mfc

最近在做一个MFC对话框程序。情况是这样的,
一、程序主对话框上,点击按钮,打开一个非模态的子对话框窗口,子对话框里执行一些操作后需要把操作的结果跟新到主对话框上。想到两种方式:
1.子对话框窗口类中保存主对话框指针,然后在子对话框窗口类利用该指针更新主对话框界面
2.自定义消息,利用SendMessage或PostMessage函数发送消息到主对话框,函数的lParam参数保存操作的结果。主对话框收到消息后更新界面。
请问哪一种方式好。

二、子对话框类中创建了一个线程,线程里执行一些操作,操作结果需要更新到子对话框界面上。还是同样的问题,是传递指针好,还是利用消息好。之前学过C#,C#里面,非UI线程无法直接访问UI线程的界面元素。

恳请各位路过的大神指导一下

2个回答

gamefinity
gamefinity   Rxr 2015.05.28 12:21
已采纳

第一个,消息好。第二个问题我觉得只能用消息,不能用指针,因为跨了线程了,应该可能会产生同步问题。总而言之,消息是安全的数据传输方式。

oyljerry
oyljerry   Ds   Rxr 2015.05.28 12:22

一般用PostMessage的方式,异步,同时把数据给主UI线程来更新界面。而不是直接操作界面

wh230308
wh230308 谢谢您的回答,但只能采纳一个人
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片