У меня есть окно, которое открывает диалоговое окно (назовите его 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 .