从属性页的事件处理程序调用DoModal()不会弹出对话框
Calling DoModal() from an event handler of property page does not bring the dialog pop up?
目前我正在使用属性表,其中我添加了4页,并在第二页中添加了一个按钮。无论我添加的页面是从resource.dll加载的,当我运行应用程序时,它的工作如预期的那样。正如上面所提到的,我在第二页添加了一个按钮,这正是我陷入困境的地方。我的意图是当按钮单击发生时,我想弹出一个模态对话框。最初我在resource.dll中创建了一个对话框,并在主应用程序中使用类视图添加了一个类,该类派生自CDialog .为了获得弹出,我在第二页按钮事件处理程序中添加了以下代码片段,
Void CSecondPage::OnbuttonClick()
{
CPopupDlg dlg(IDD_MYDIALOG);//CPopupDlg *dlg = new CPopupDlg(IDD_MYDIALOG);
dlg.doModal();//dlg->doModal();//In this way also I tried but didn't work
}
和CPopupDlg的构造函数如下,
CPopupDlg::CPopupDlg(int n):CDialog(n)
{
}
我甚至检查了事件是否被触发,它被触发了,但弹出对话框没有发生。
我在调试时注意到的一件事是"CPopupDlg hWnd = 0X000000"。
有没有人能让我知道为什么弹出对话框没有发生,也请让我知道我如何才能实现弹出对话框,当我点击第二页的按钮
是的,最后我决定在buttonclick事件就像我上面提到的需要设置的资源处理resource.dll使用AfxSetResourceHandle(),因为在第一页我已经设置为bitmapres.dll bitmapres.dll未能找到对话框资源,所以在单击事件resource.dll重置它我能找到的资源资源和对话我呼吁的流行没有WS_CHILD(它是)因为类型即使我们使用AfxSetResourceHandle()设置资源句柄,它也会重叠。然后我将它的样式修改为WS_POPUP,然后它工作得很好。
Void CSecondPage::OnbuttonClick()
{
CPopupDlg dlg(IDD_MYDIALOG);//CPopupDlg *dlg = new CPopupDlg(IDD_MYDIALOG);
AfxSetResourceHandle(hDialogRes);
dlg.doModal();//dlg->doModal();//In this way also I tried but didn't work
}
按如下方式设置样式使我得到了想要的目标。
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
相关文章:
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 当对话框被接受时,如何用参数调用槽
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 如何多次询问来自QML对话框的输入?
- 选择文件对话框错误
- 自定义对话框(源自QDialog)不会关闭(Android)
- 如何在 MFC 对话框中使用 OnDraw
- 在C++中创建文件夹选取器对话框的最简单方法是什么?
- 从资源视图访问对话框时出现问题
- 如何检测窗口当前是否正在运行模式对话框?
- "最小化"按钮不会出现在 MFC 对话框中
- 如何获取QNetworkConfiguration UserChoice对话框?
- 表单显示对话框函数错误,并且不执行下面的语句
- 如何在 VC6 中的对话框中将图标设置为按钮
- C++/Win32 构造函数不使用从对话框获取的字符串初始化变量
- 在 Win32 应用中,如果未选择文件夹并且用户单击"确定",则文件夹选择对话框将关闭
- MFC 应用程序 Dialog基于使用 propertyPage,DoModal() for a CDialog 不打开任何对话框
- 当 CDialog.DoModal() 函数无法创建对话框时
- 从属性页的事件处理程序调用DoModal()不会弹出对话框
- 是否可以从对话框的 DoModal 函数返回自定义值?