模态对话框的消息处理机制分析
最近在工作中遇到了一个这样的需求:
用户在我线程A的一个CWnd窗口中点击“设置”按钮,我发送一个UM_CONFIG消息给另外一个线程B,由另外一个线程B响应我的UM_CONFIG消息,弹出一个用于用户设置相关参数
的对话框。这时候出现一个问题,就是当用户多次点击这个“设置”按钮的时候,会弹出多个设置对话框。
于是同时提到了在我的线程A中用这样一种方法来解决:
1.在类成员中定义一个BOOL变量m_bIsOnly; 初始化为 TRUE;
2.在“设置”按钮的响应函数OnConfig中:
(1)判断
if(m_bIsOnly==FALSE)
return;
(2)在发送消息之前
m_bIsOnly=FALSE;
(3)发送完消息后
m_bIsOnly=TRUE;
这样来控制只出现一个设置对话框;
个人是不怎么同意这个解决方法的,因为我觉得不管是用SendMessage或者PostMes