cfnr.net
当前位置:首页 >> 在VC++中模态对话框与非模态对话框的区别? >>

在VC++中模态对话框与非模态对话框的区别?

模态对话框 操作模式上来讲 模态对话框在关闭对话框(OnOk,OnCancel,OnClose)这三个消息产生之前不可对此对话框以外的对话框进行操作 当上面3个消息产生后系统负责删除模态对话框资源 而非模态对话框可以进行其他操作 必须在三个消息发生后自己在...

word中的“另存为”对话框就是模态对话框,你不把它关闭,不能进行其他操作。 word中的“查找与替换”对话框就是非模态对话框,你不把它关闭,能进行其他操作。

模态对话框工作状态:当它获得焦点时,将垄断用户的输入,在完成本对话框之前,用户无法对本程序的其他部分进行操作。 非模态对话框类似于WORD里的查找替换,就在应用程序打开非模态对话框的同时还可以切换到其他窗口进行操作。 二者的类都派生...

word中的“另存为”对话框就是模态对话框,你不把它关闭,不能进行其他操作。 word中的“查找与替换”对话框就是非模态对话框,你不把它关闭,能进行其他操作。

不要创建基于对话框的MFC应用程序; 如果非要创建基于对话框的MFC应用程序,在dlg内部触发创建对话框,即在对应的***dlg,cpp中触发创建CMy33Dlg,你目前的做法由于程序顺序执行,没有死循环的话自然就退出了; 创建单文档或者多文档程序,在应用...

就本题而言, 模态与非模态没有区别, 仅仅是打开的方式不同, 考点就是不同DLG数据的传递.

通常这种情况,是窗口资源被重用或者其它原因造成的GDI资源失败造成的,原因很多,比如非模态多窗口公用了某些资源或变量。 这种问题,还是需要代码说话,将非模态创建部分代码和可能产生共用的代码贴出来看看。

有很多种方法:1、重载OnOK(),2、PostMessage(窗口句柄,WM_CLOSE);3、调用EndDialog

贴出窗口1中,窗口2的创建部分的代码。 一般可能是窗口2创建的时候,没有明确父窗口关系或者错误的父窗口造成的,这里要将窗口1的句柄作为父窗口。 另外,这个问题确实比较古怪,模态关系是很难破坏的,应该是哪个地方做了错误的逻辑处理或者窗...

网站首页 | 网站地图
All rights reserved Powered by www.cfnr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com