关于非模态对话框问题

wuyicong wuyicong 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
非模态对话框在消息循环中是
while (GetMessage (&msg, NULL, 0, 0))
{
if (hDlgModeless == 0 || !IsDialogMessage (hDlgModeless, &msg))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
}
hDlgModeless == 0 || !IsDialogMessage (hDlgModeless, &msg)书中的解释始终让我无法理解请各位能说下自己对这的看法,谢谢!
...全文

相关推荐

MFC 非模态对话框教程

对非模式对话框常常感到困惑的新手程序员,如果您记住几个漂亮的小动作,然后编程非模式对话框,将非常简单。

reibatman

MFC多线程创建非模态对话框(防止一闪而逝)

主对话框单击事件里使用多线程创建对话框B,正常情况见B对话框都是闪现一次,无法长期停留。本代码利用MSG防止了此现象的发生,适合初学多线程的新手。

辅_

vc的模态对话框和非模态对话框

非模态的对话框是独立的,就是说和主程序可以同时交换数据,而模态的对话框则只能和自己交换。换句话说,模态对话框很霸道,你开了它就无法在同一个应用程序中的其他地方干活了,比如那个经常用的openfile dialog。非模态对话框就很随和,开了它你还可以爱干嘛干嘛。还有一个区别在于内存分配,new在堆中,另一在栈中,一般说两者一样,但如果你在对话框中开了很大的空间做成员,第二种就会有问题了,因为栈空间是受限的。但据说解决栈溢出用static申明,在全局数据区分配内

dongyet

创建非模态对话框

描述了如何创建一个非模态对话框,并将相关注意事项进行了说明.

mrliko

vc模态和非模态对话框关闭过程

非模态对话框相对于模态对话框,他的创建和销毁过程和模态对话框有一定的区别,非模态对话框需要重载函数OnCanel,并且在这个函数中调用DestroyWindow。并且不能调用基类的OnCancel,因为基类的OnCancel调用了EndDialog这个函数,这个函数是针对模态对话框的。 还有一个必须重载的函数就是PostNcDestroy,这也是一个虚函数,通常的非模态对话框是用类的指针,通过new创建的,这就需要在PostNcDestroy函数中delete掉这个指针。

bjash
评论 3
收藏 已收藏
分享
返回顶部
wuyicong
VC/MFC 16,550 成员 421,606 内容