首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC中等候消息执行

2013-11-03 
MFC中等待消息执行最近封装一个控件,遇到一个难题,就是不知道如何等待消息返回。具体如下:自定义了一个消息

MFC中等待消息执行
最近封装一个控件,遇到一个难题,就是不知道如何等待消息返回。具体如下:

自定义了一个消息1501,这个消息里面执行某个操作MessageFunction。
有个方法function,这个方法提供给其他人调用的。这个方法判断isSignal标志,已表示消息1501是否执行完成。因为1501这个消息是由其他人触发的,所以我不知道什么MessageFunction才会执行。需要在function中循环判断isSignal标志是否改过了。而在function中使用循环判断会导致线程阻塞,消息MessageFunction压根儿不执行。

我的问题就是在function怎么判断MessageFunction已经执行过了?

ON_MESSAGE( 1501, MessageFunction ) 

bool isSignal = false;
HRESULT CXXXCtrl::MessageFunction(WPARAM wParam, LPARAM lParam) 
{
    isSignal = true;
}

HRESULT function()
{
    if(isSignal)return S_OK; 
}
[解决办法]
function开线程来判断isSignal
[解决办法]
可以用Event,开个线程WaitForSingleObject(EVENT, INFINITE);等待这个EVENT,在消息响应函数中MessageFunction来SetEvent
[解决办法]
那你实现个连接点啊, 别人做为某件事后,再通过连接点通知你

热点排行