1
我有一个用C++编写的旧式Win32模态对话框。布局在代码中(而不是从资源加载)建造和使用这样的自定义模式消息循环显示:为自定义Win32模式对话框模仿:: DialogBox()
// 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);
}
在主要工作除了少数烦恼
当使用公共控件如图6所示,按照标准对话框敲击alt键后,快捷键助记符和虚线焦点矩形上的下划线不会出现。 (如果我在对话框启动时按住一个键,它们确实会出现)。
单击父窗口时,我没有看到对话框框架像标准对话框一样闪烁。 (在运行上述循环之前,我禁用了拥有窗口)。
基本上我想要标准对话框程序的功能,但不需要从资源加载对话框。
要清楚,布局不能从资源加载。我可以使用一个空的对话框模板,调用:: DialogBox()并在WM_INITDIALOG上以编程方式设置它的内容,但我想了解为什么上述不起作用。