Что означает код ошибки Windows 1420 (ERROR_WINDOW_NOT_DIALOG)?

 
Предыдущий Следующий
ERROR_HOTKEY_NOT_REGISTERED ERROR_CONTROL_ID_NOT_FOUND

ERROR_WINDOW_NOT_DIALOG

HWND не представляет диалоговое окно

API диспетчера диалогов предполагают окно, созданное как диалог, со специальным хранилищем, обработкой сообщений и навигацией по элементам управления. Произвольное окно верхнего уровня может содержать дочерние элементы управления и при этом не быть диалогом.

Это различие важно в оболочках, принимающих любой HWND. Вызов функции, предназначенной для диалогов, для пользовательского класса окна может проходить поверхностные тесты, пока операции не потребуется состояние диалога: идентификаторы элементов управления, обработка кнопки по умолчанию или внутренние слова диалога.

Что следует проверить

  • Проследите, как было создано окно: через API шаблонов диалога или через CreateWindowEx с пользовательским классом.
  • Для родителей, не являющихся диалогами, используйте общие API дочерних окон.
  • Если пользовательское окно должно вести себя как диалог, явно реализуйте нужную обработку сообщений и навигацию, а не предполагайте наличие состояния диспетчера диалогов.
  • Проверьте, не был ли устаревший дескриптор заменён окном другого типа.

Отсутствующий дочерний элемент управления в настоящем диалоге — это ERROR_CONTROL_ID_NOT_FOUND; данный код отклоняет сам тип родительского окна.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.