AfxMessageBox弹出的对话框时,关闭父窗口的父窗口引起的问题。
2011-08-07 22:09
337 查看
前几天的时候,只在界面加了一个AfxmessageBox的提示语句,还给自己带来了麻烦。原因是关闭Afxmessagebox的父窗口的父窗口时,产生了bug。
为了便于理解,先给这三个窗口依次取个名称吧。AfxMessageBox窗口名为dlgMsgBox;其父窗口为dlgParent;其祖父窗口为dlgGrandParent。
一般来说AfxMessageBox是模态对话框,我们是无法关闭dlgParent窗口的,但是其父窗口为dlgParent为非模态的,所以可以直接关闭dlgGrandParent。
但是界面之间崩溃了,后来查了半天,发现原来是AfxMessageBox没有处理,之间关闭时返回值为0.代码没有做处理。继续执行后面代码,用到dlgParent指针产生的问题。
原来代码为 if (IDCANCEL == AfxMessageBox(.....)) return;
后来修改为 if (IDOK != AfxMessageBox(.....)) return;
虽然现在知道问题的原因,看似也蛮简单的,但是那个时候自己也花了很大力气去查找,所以在此处记录下。
为了便于理解,先给这三个窗口依次取个名称吧。AfxMessageBox窗口名为dlgMsgBox;其父窗口为dlgParent;其祖父窗口为dlgGrandParent。
一般来说AfxMessageBox是模态对话框,我们是无法关闭dlgParent窗口的,但是其父窗口为dlgParent为非模态的,所以可以直接关闭dlgGrandParent。
但是界面之间崩溃了,后来查了半天,发现原来是AfxMessageBox没有处理,之间关闭时返回值为0.代码没有做处理。继续执行后面代码,用到dlgParent指针产生的问题。
原来代码为 if (IDCANCEL == AfxMessageBox(.....)) return;
后来修改为 if (IDOK != AfxMessageBox(.....)) return;
虽然现在知道问题的原因,看似也蛮简单的,但是那个时候自己也花了很大力气去查找,所以在此处记录下。
相关文章推荐
- (MFC)关于点击窗口1的button弹出对话框2,关闭对话框2,需要点击两次对话框1的button才能弹出对话框2的问题
- javascript关闭窗口不弹出提示对话框!
- javascript 关闭窗口,弹出新窗口并带有确认关闭对话框解决办法
- window.showModalDialog方式/模式窗口数据不刷新(缓存)问题/模式窗口中,链接弹出新窗口问题/无提示关闭页面的方法
- 解除IE拦截弹出窗口限制,禁用关闭弹出窗口时的确认对话框。
- MFC 关闭所有弹出模态对话框,并创建新的对话框(切换/跳转窗口)
- 关于layer.js 弹出框表单提交关闭父窗口出现表单提交失效的问题
- javascript 关闭窗口,弹出新窗口并带有确认关闭对话框解决办法
- 用JS实现关闭当前窗口不弹出对话框
- Extjs4.2中Controller重复init,init2次引起点击事件弹出两个窗口的问题
- DUI中组合框弹出列表窗口与弹出模态框冲突引起的奔溃问题
- javascipt问题:关闭模态对话框,启动新的窗口
- java中JFrame 窗口关闭时,弹出一个对话框提示是否确定关闭
- ligerUI调用$.ligerDialog.open弹出窗口,关闭后无法获取焦点问题
- javascript关闭窗口不弹出提示对话框!
- 用javascript实现选择下拉菜单间的数据转移,用javascript实现超强的万年历,javascript弹出窗口后,关闭窗口时不弹出对话框
- java Swing 弹出新对话框的方法,以及关闭新对话框遇到的问题和解决方法
- mfc对话框显示和关闭,程序崩溃,弹出中止,重试,忽略的问题
- 离开与关闭程序的弹出窗口(对话框上的Icon图标)
- 关于java JFrame窗口关闭弹出showConfirmDialog 对话框关闭而主窗口不关闭