Winapi 为自定义Win32模式对话框模拟::DialogBox() 我有一个用C++编写的旧学校Win32模式对话框。布局由未从资源加载的代码构成,并使用自定义模式消息循环显示,如下所示: // Spin message loop window->m_modalInfo = &mi; while (!mi.modalFinished) { // Get a message MSG msg; GetMessage(&msg, NULL, 0, 0); // Process dialog messages first if (IsDialogMessage(hWnd, &msg)) continue; // Dispatch other messages TranslateMessage(&msg); DispatchMessage(&msg); }

Winapi 为自定义Win32模式对话框模拟::DialogBox() 我有一个用C++编写的旧学校Win32模式对话框。布局由未从资源加载的代码构成,并使用自定义模式消息循环显示,如下所示: // Spin message loop window->m_modalInfo = &mi; while (!mi.modalFinished) { // Get a message MSG msg; GetMessage(&msg, NULL, 0, 0); // Process dialog messages first if (IsDialogMessage(hWnd, &msg)) continue; // Dispatch other messages TranslateMessage(&msg); DispatchMessage(&msg); },winapi,dialog,modal-dialog,Winapi,Dialog,Modal Dialog,除了一些烦人的事情外,大部分都是工作 使用常用控件6时,快捷键助记符和点焦点矩形上的下划线在按标准对话框的alt键后不会出现。如果我在对话框启动时按住一个键,它们确实会出现 单击父窗口时,我不会看到对话框框架像标准对话框一样闪烁。在运行上述循环之前,我将禁用所属窗口 基本上我想要标准对话框过程的功能,但不需要从资源加载对话框 要清楚,不能从资源加载布局。我可以使用一个空的对话框模板,调用::DialogBox并在WM_INITDIALOG上以编程方式设置它的内容,但我想了解为什么上面的方法不起作

除了一些烦人的事情外,大部分都是工作

使用常用控件6时,快捷键助记符和点焦点矩形上的下划线在按标准对话框的alt键后不会出现。如果我在对话框启动时按住一个键,它们确实会出现

单击父窗口时,我不会看到对话框框架像标准对话框一样闪烁。在运行上述循环之前,我将禁用所属窗口

基本上我想要标准对话框过程的功能,但不需要从资源加载对话框

要清楚,不能从资源加载布局。我可以使用一个空的对话框模板,调用::DialogBox并在WM_INITDIALOG上以编程方式设置它的内容,但我想了解为什么上面的方法不起作用。

如果要以编程方式布局对话框,请使用DialogBoxIndirectParam