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