| Предыдущий | Следующий |
| ERROR_HOTKEY_NOT_REGISTERED | ERROR_CONTROL_ID_NOT_FOUND |
ERROR_WINDOW_NOT_DIALOG
HWND не представляет диалоговое окно
API диспетчера диалогов предполагают окно, созданное как диалог, со специальным хранилищем, обработкой сообщений и навигацией по элементам управления. Произвольное окно верхнего уровня может содержать дочерние элементы управления и при этом не быть диалогом.
Это различие важно в оболочках, принимающих любой HWND. Вызов функции, предназначенной для диалогов, для пользовательского класса окна может проходить поверхностные тесты, пока операции не потребуется состояние диалога: идентификаторы элементов управления, обработка кнопки по умолчанию или внутренние слова диалога.
Что следует проверить
- Проследите, как было создано окно: через API шаблонов диалога или через
CreateWindowExс пользовательским классом. - Для родителей, не являющихся диалогами, используйте общие API дочерних окон.
- Если пользовательское окно должно вести себя как диалог, явно реализуйте нужную обработку сообщений и навигацию, а не предполагайте наличие состояния диспетчера диалогов.
- Проверьте, не был ли устаревший дескриптор заменён окном другого типа.
Отсутствующий дочерний элемент управления в настоящем диалоге — это ERROR_CONTROL_ID_NOT_FOUND; данный код отклоняет сам тип родительского окна.
Ссылки
- Microsoft: рекомендации по программированию диалоговых окон
- Microsoft: CreateWindowEx
- Microsoft: окна и сообщения
Нужно найти другой код? Найти другой код состояния или ошибки.