Как программно закрыть диалоговое окно в Win32 - PullRequest
0 голосов
/ 22 января 2020

У меня есть окно, которое открывает диалоговое окно (назовите его DLG_A). В этом диалоговом окне я использую следующий код для создания немодального диалогового окна на основе шаблона:

 hSchemaWnd = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SHOW_SCHEMA), NULL, (DLGPROC)ShowSchemaCallback); 

Я хочу закрыть все открытые диалоговые окна при закрытии основного диалогового окна (DLG_A), поэтому Сначала я попробовал функцию FindWindow(), но она не работает с диалоговыми окнами, поэтому я начал сохранять HWND каждого диалогового окна в массиве и из IDCANCEL основного приложения, которое я назвал следующим кодом:

SendMessage(dlgHWND, WM_COMMAND, SC_CLOSE, 0);

Но все равно ничего не происходит, и, насколько я вижу, функция обратного вызова для диалогового окна не получает вызов.

Есть идеи, что я делаю неправильно?

ОТВЕТ:

Как сказано в разделе комментариев iinspectable, чтобы уничтожить окно этого типа, можно использовать команду DestroyWindow .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...