| Предыдущий | Следующий |
| ERROR_INVALID_COMBOBOX_MESSAGE | ERROR_INVALID_EDIT_HEIGHT |
ERROR_WINDOW_NOT_COMBOBOX
Целевое окно не является полем со списком
Сообщения поля со списком используют пространство имён CB_* и ожидают, что целью будет экземпляр класса элемента управления combo box. Обычное дочернее окно, поле редактирования или внутреннее дочернее окно combo box не удовлетворяют этому контракту.
Подмена оконной процедуры и обнаружение элементов управления часто вызывают путаницу. Поле со списком может содержать поле редактирования и часть со списком, однако приложения обычно должны отправлять сообщения combo собственному HWND. Кэширование внутреннего дочернего дескриптора с последующей обработкой его как внешнего элемента управления может привести к этому состоянию.
Что проверить
- Проверьте имя класса и путь создания элемента управления для целевого дескриптора.
- Используйте
CB_GETCOMBOBOXINFO, когда коду действительно нужны внутренние дескрипторы поля редактирования и списка. - Отправляйте сообщения
CB_*самому полю со списком, если только сообщение явно не предназначено дочернему окну. - Получайте дескрипторы заново после пересоздания или смены родителя элементов управления.
Для корректного combo box с неподдерживаемым сообщением, зависящим от стиля, вместо этого возвращается отдельное состояние ERROR_INVALID_COMBOBOX_MESSAGE .
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.