| Предыдущий | Следующий |
| ERROR_INVALID_WINDOW_HANDLE | ERROR_INVALID_CURSOR_HANDLE |
ERROR_INVALID_MENU_HANDLE
HMENU не является допустимым объектом меню
Дескрипторы меню представляют отдельный тип объектов USER32. Значение, допустимое как HWND, идентификатор дочернего элемента управления или произвольное целое число, не становится меню лишь потому, что эти поля иногда используют один и тот же тип параметра HMENUв API Win32.
Чаще всего диагностическая ошибка возникает при создании окна. Для перекрывающегося или всплывающего окна аргумент hMenu функции CreateWindowEx является дескриптором меню; для дочернего окна тот же параметр является идентификатором дочернего окна. Поэтому последующая передача идентификатора элемента управления в API меню может выглядеть правдоподобно, хотя на самом деле представляет объект другого класса.
Что проверить
- Проследите, откуда было получено значение:
CreateMenu,LoadMenu,GetMenuили идентификатор дочернего окна. - Проверьте порядок уничтожения и вызовы
DestroyMenu. - Не приводите идентификатор элемента управления или команды к типу
HMENUдля функций управления меню. - Если поиск элемента не удаётся после получения допустимого дескриптора, отдельно проверьте идентификаторы элементов.
Используйте ERROR_MENU_ITEM_NOT_FOUND для допустимого меню, в котором отсутствует запрошенный элемент; данный код означает недопустимость самого дескриптора меню.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.