AfxMessageBox——模态与非模态的问题

来源:互联网 发布:第三方登录数据库设计 编辑:程序博客网 时间:2024/05/17 04:43
 

在实际编程中发现:

1,  先弹出一个AfxMessageBox,使用全局的,它为模态的。

2,  再创建一个非模态对话框,假设为Dialog1

3,  Dialog1关闭时,AfxMessageBox变为非模态的。

 

最后总结了两种情况:

1,  先弹出AfxMessageBox,后创建非模态对话框。

2,  先创建非模态对话框,后弹出AfxMessageBox

这两种情况在非模态对话框关闭时,AfxMessageBox都变为非模态的。

 

试验了几种修改方法,但仍然有问题:

第一种解决方法:

针对上述第一种情况,先查找到AfxMessageBox的窗口句柄,然后转换成CWnd对象,作为指向当前窗口对象的指针。

代码如下:

1,    AfxMessageBox的窗口标题与主程序的工程名相同。

2,    EnumWindows查找窗口句柄。

3,    FromHandle将句柄转换成对象指针。

4,    创建非模态对话框,Create 对话框ID 窗口对象指针 )。

此方法只解决了第一种情况,第二种情况没有解决。

 

其他解决方法:

使用MessageBox替代AfxMessageBox 如果先弹出非模态对话框,那么MessageBox以该非模态对话框为父窗口,此方法也没解决第二种情况。

      

总结一下:

       最后的解决办法是,创建非模态对话框时Create函数第二个参数为桌面的窗口对象。不使用与主程序相关的窗口对象,这样上面的两种情况都解决了。

 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 中考误用0.38mm的笔怎么办 ps画笔都锁住了怎么办 削铅笔机坏了怎么办 幼儿园小朋友不听老师话怎么办 孩子在幼儿园不听老师话怎么办 幼儿园大班孩子上课不好好上怎么办 脸上挠了血印子怎么办 大班公开课烫伤了怎么办教案 孩子心理出现了问题该怎么办 幼师打孩子很多家长告怎么办 课堂上纪律不好的学生怎么办 孩子上幼儿园总感冒怎么办 孩子上幼儿园总生病怎么办 台湾人抗拒统大陆人中国人怎么办 如果一年的公休日耍不完怎么办 我一个月要歇三天班怎么办 学校没给报到证怎么办 员工休息一天老板拉着脸怎么办 换工作了报到证怎么办 幼儿园的孩子不写作业怎么办 幼儿园宝宝不写作业怎么办 幼儿园孩子不写作业怎么办 光盘数据面写字了怎么办 娃娃的手断了怎么办 联币金融跑路了怎么办 胃消化不了想吐怎么办 吃撑了恶心想吐怎么办 mac口红膏体晃动怎么办 excl图标和以前不一样了怎么办 冰箱显示板坏了怎么办 冰箱电脑显示屏坏了怎么办 冰箱的电子显示屏坏了怎么办 指导别人炒股亏损了怎么办 没有协议委托别人炒股亏损怎么办 炒股亏了很多钱崩溃了怎么办 帮人炒股亏了很多钱怎么办 破净买入继续跌怎么办 国画颜色上错了怎么办 宝宝5个月脸一直开裂怎么办 宝宝冻脸怎么办小妙招 3岁小儿长期便秘怎么办