- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个窗口,在 .rc 文件中设置了以下属性:
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
它有一个关联类(派生自 CDialog),当我实例化它时,然后调用该对象的 DoModal()它不是真正的模式 - 我可以单击“父”窗口。
CMyDlg dlg;
int result = dlg.DoModal();
“父”窗口是一个 dlg 框,但被视为主窗口。它的属性是:
STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CAPTION "My Main App"
MENU IDR_MENU_MAIN
我使用 DoModal 从主窗口调用的其他 dlg 框我想保留为非模态。但是我想要另一个模态。
我对发生的事情有点困惑。有人可以解释如何让这个“ child ”dlg 框成为模态(同时允许其他“ child ”不是模态的吗?
附加信息:
此应用的 GUI 不是应用的主线程。它是一个命令行应用程序,它启动另一个线程并加载一个包含 GUI 的 DLL。我不确定这是否对问题有任何影响。
主 dlg 窗口 == A这个新的 dlg 框窗口我想表现得像模态 == B一个不同的 dlg 框 == C
在 A 中:调用 B.DoModal 不是模态的,但我希望它是在 A 中:调用 C.DoModal 不是模态的,我想保持这种状态
在 C 中,如果我调用 D.DoModal,它是模态的,我想保持这种状态(因此应用程序确实显示模态功能)
更可怕的信息
来自 A:调用标准文件打开或另存为 dlg 框会导致 NON MODAL dlg 框。
CFileDialog dlg(TRUE);
dlg.DoModal();
这也是不可取的。
这两个问题似乎对其中一个问题有一些很好的可能性,但它们没有解决如何确保被调用的标准文件打开/保存 dlgs 是模态的...
Convert a modeless dialog to modal at runtime How do I create Modal dialog in worker thread(Non-UI thread)?
最佳答案
我没有看到您正在为模态对话框指定父窗口。
也许这就是所欠缺的。
关于c++ - DoModal() 没有将 dlg 框作为模态显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4020664/
我在 Visual Studio 2008 中创建了一个基于 MFC 对话框的应用程序。 CCalendarWindowDlg dlg; m_pMainWnd = &dlg; INT_PTR nRes
我想控制模态对话框的位置。抱歉发了这么长的帖子,但我认为这就是帮助解决这个问题可能需要的一切。 我有一个对话框窗口,当单击一个按钮时会打开一个列表。 Parent 是 CXEdit,它调用 OnFun
我在有很多对话框的 MFC 应用程序中工作。调试时我无法判断是哪个类或函数创建了这个对话框。 为了说明这个问题,我创建了一个简单的基于对话框的 MFC 应用程序。在 Debug模式下运行它并暂停调试。
好吧,我承认我对 Windows API 甚至 MFC 都一无所知。 当出现问题(文件名字符串中的非法字符)时,我会弹出一个错误窗口,我希望错误框是模态的。 我一直想不通为什么它在访问 doModal
我想做的是,在使用 DoModal() 创建一个对话框并在框中按 OK 退出它之后,返回一个自定义值。例如,用户将在对话框中输入的几个字符串。 最佳答案 您不能更改 DoModal() 函数的返回值,
我有一个窗口,在 .rc 文件中设置了以下属性: STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS
MSDN说,对于CDialog.DoModal()函数,如果函数不能创建对话框,返回值为-1。它没有说明在哪种情况下它可能无法创建对话框。 对 MFC 源代码的快速调查表明,如果 (LPCDLGTEM
我在Win XP平台上用VS 6.0开发了一个相当大的C++程序,现在已经迁移到运行Win 7的新机器上(仍然运行VS 6.0)。该代码包含一个函数,用于实例化和运行 CFileDialog 对象,以
我知道我可以使用 DLGTEMPLATEEX 创建一个对话窗口内存中的模板使用 DialogBoxIndirectParam . 但是使用 MFC 我可以动态修改 CDialog 中的 DLGTEMP
我已经迁移 *MFC* 项目从 VC 6 到 VS 2010 项目。现在,我们实现的自定义对话框使用了 CDialog::DoModal,它无法正常工作,并在这一行失败HRSRC hResource
我在项目中写了一个 super 简单的 ATL 对话框。即使我注意到网络上的每个示例都内联实现了 CDialogImpl 类(即,类定义及其在定义本身中的实现),我还是正常编写它,将我的定义分隔在 .
我以前用过 MFC 对话框: EnterNameDlg dlg; dlg.DoModal(); string str = dlg.GetName(); 然而,我现在的一个对话框实际上以这种方法查看列表
我是 MFC 的新手,被要求在 Visual Studio 2008 中创建一个 MFC 应用程序。我正在尝试创建两个对话框。第一个在启动时打开,如果在第一个上按下确定,第二个对话框打开。然而,我的第
谁能帮我理解如何为从 CDialog 派生的对话框类覆盖 OnPaint()。 代码如下: ColorImageDlg *pDlg = NULL; pDlg = new ColorImageDlg;
谁能帮我理解如何为从 CDialog 派生的对话框类覆盖 OnPaint()。 代码如下: ColorImageDlg *pDlg = NULL; pDlg = new ColorImageDlg;
在 VS2013 中,我创建了一个基于对话的 MFC 应用程序。我修改了项目以便在应用程序开始时使用 PropertyPage 和 Propertysheet,因此,它不会启动 CDialog,而是启
我创建了一个派生自 CDialog 的对话框(MFC 会自动执行此操作),但我必须覆盖 OnInitDialog 方法来初始化 ComboBox: BOOL CLogin::OnInitDialog(
我们有一个适用于 Windows CE 和 Windows Mobile 的应用程序。在此应用程序中,如果按下工具栏中的按钮,应显示一个对话框。这在 Windows CE 7 和 Windows Mo
我是一名优秀的程序员,十分优秀!