读书人

SDK编程程序界面都是非模态对话框的

发布时间: 2012-03-14 12:01:12 作者: rapoo

SDK编程,程序界面都是非模态对话框的问题
SDK编程

非模态对话框的消息要进入程序的消息队列。消息循环需要这么写:
while(GetMessage(&msg,NUll,0,0)
{
if(hDlgModeless == 0 || !IsDialogMessage(hDlgModeless, &msg)
{
TranslateMessae(&msg);
DispatchMessage(&msg);
}
}

但是如果我的程序是由三个或者以上的非模态对话框组成的,其中一个非模态对话框作为主操作界面,这种情况下消息循环该怎么写呢?

[解决办法]
while(GetMessage(&msg,NUll,0,0)
{
if(!IsDialogMessage(hDlgModeless, &msg) && !IsDialogMessage(hDlgModeless1, &msg) &&
!IsDialogMessage(hDlgModeless2, &msg) && !IsDialogMessage(hDlgModeless3, &msg))
{
TranslateMessae(&msg);
DispatchMessage(&msg);
}
}

[解决办法]
应该写吧.
因为还有WM_SYSCOMMAND等消息需要翻译分发...
[解决办法]

探讨

知道了,原来对话框也可以收到这个消息:

C/C++ code
case WM_DESTROY:
PostQuitMessage(0);
return TRUE;

读书人网 >VC/MFC

热点推荐