| Предыдущий | Следующий |
| ERROR_DESTROY_OBJECT_OF_OTHER_THREAD | ERROR_NO_SYSTEM_MENU |
ERROR_CHILD_WINDOW_MENU
Дочерние окна не владеют меню через параметр создания
Параметр hMenu функции CreateWindowEx интерпретируется по-разному в зависимости от типа окна. Для перекрывающихся и всплывающих окон он задаёт меню. Для дочернего окна он задаёт идентификатор дочернего окна, используемый родителем и маршрутизацией команд в стиле диалоговых окон.
Обработка дочернего окна так, будто оно имеет меню верхнего уровня, смешивает эти два контракта. Исправление заключается не в другом приведении дескриптора меню; необходимо изменить иерархию окон или схему владения меню.
Что проверить
- Проверьте, установлен ли
WS_CHILDдля создаваемого окна. - Для дочернего окна передавайте в параметре создания требуемый идентификатор элемента управления.
- Назначайте меню подходящему окну верхнего уровня или реализуйте команды дочернего окна через его родителя.
- Проверьте оболочки API, которые называют параметр просто
menuи скрывают его значение идентификатора дочернего окна.
Этот результат тесно связан с ERROR_TLW_WITH_WSCHILD, но здесь конкретный конфликт относится к семантике меню дочернего окна.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.