MessageBox弹不出对话框

为什么theapApp中写的messagebox不会显示?

见了一个基于对话框的MFC程序,整个程序就一个对话框,MFC自动在应用程序的initisal里面生成了
C/C++ code
?
1
2
3
4
5
6
7
8
9
CmainDlg dlg;
     m_pMainWnd = &dlg;
     INT_PTR  nResponse = dlg.DoModal();
     if  (nResponse == IDOK)
     {
         // TODO: 在此放置处理何时用
         ::MessageBox(NULL, _T( "我是主函数中的messagebox" ), _T( "提示" ), MB_ICONWARNING);
         //  “确定”来关闭对话框的代码
     }

就这个Messagebox是我写的,我想让对话框点击确定后弹一个消息框,但是现在怎么写这个messagebox的参数,这个消息框都弹不出来,为什么会这样?

解释:

原因是这样的, 一般对话框在销毁的时候并不会向应用程序发送WM_QUIT消息退出消息循环, 但是程序【主窗口】(也就是m_pMainWnd所指)在销毁时会发送一个。
所以这里因为前面的对话框是程序主窗口, DoModal结束后应用程序收到WM_QUIT而退出消息循环, 后面的对话框就不会显示了(MessageBox就是一个对话框)。
 我也碰到过这个问题:http://bbs.youkuaiyun.com/topics/390347681

`messagebox` 是 Python 的一个模块,通常用于显示简单的消息框,它不是标准库的一部分,而是来自第三方库 `wxPython`。如果你想在使用 `messagebox` 弹出对话框之前做些前置操作,例如检查特定条件、初始化某些设置或处理用户输入,你可以按照以下步骤进行: 1. **导入模块**: 首先,确保你已经安装了 `wxPython` 库。如果还没有,可以通过 pip 安装: ```shell pip install wxpython ``` 2. **初始化框架**: 如果你想在应用中集成 wxPython,你需要创建一个 `App` 对象并启动事件循环: ```python import wx app = wx.App() ``` 3. **检查条件或准备**: 在调用 `messagebox` 之前,你可以添加适当的条件判断或设置: ```python if some_condition: # 检查某个条件是否满足 message = "Your message here" wx.MessageBox(message, "Title", style=wx.OK | wx.CENTRE) # 显示对话框 ``` 4. **事件处理**: 可能还需要定义回调函数来处理用户的响应,尽管这通常不需要放在对话框打开之前。 5. **运行主循环**: 最后别忘了运行应用的主循环: ```python app.MainLoop() ``` 6. **清理资源**(可选): 当对话框关闭后,你可能希望清理一些资源,但这不是必须的,因为 `wx.App` 类会在退出时自动完成。 记得在你的代码中根据具体需求调整上述步骤。如果你有更具体的条件或需求,请详细描述一下,我可以提供更精确的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值