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上以編程方式設置它的內容,但我想了解爲什麼上述不起作用。