Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

combobox на rebar'е

13K
20 апреля 2006 года
Cube
14 / / 09.03.2006
Столкнулся с такой проблемой:
Создаю combobox, помещаю его на rebar. Этот combobox ведет себя странно - текст вводить можно, а вот backspace почему-то заблокирован. Кроме того, количество символов, кот. можно ввести, ограничено длиной поля ввода combobox'a... Мож кто знает, как с этим бороться, подкиньте рецепт.
13K
25 апреля 2006 года
Cube
14 / / 09.03.2006
Эту проблему решил.
Просто заменил у rebar'а в CreateWindowЕх флаг WS_CHILD на WS_POPUP - backspace заработал,
а combobox'у в его CreateWindowEx добавил флаг CBS_AUTOHSCROLL - прокрутка по горизонтали заработала.
Зато другая проблема осталась:
Как бы мне отловить нажатие клавиши ENTER в combobox'е... Дело такое - если фокус на любом элементе, кроме combobox'а, то ENTER отлавливается без проблем, например через WM_KEYDOWN, а вот если в combobox'е, то нажатие ENTER почему-то не генерирует WM_KEYDOWN, а только мерзкий beep...
406
25 апреля 2006 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by Cube
Эту проблему решил.
Просто заменил у rebar'а в CreateWindowЕх флаг WS_CHILD на WS_POPUP - backspace заработал,
а combobox'у в его CreateWindowEx добавил флаг CBS_AUTOHSCROLL - прокрутка по горизонтали заработала.
Зато другая проблема осталась:
Как бы мне отловить нажатие клавиши ENTER в combobox'е... Дело такое - если фокус на любом элементе, кроме combobox'а, то ENTER отлавливается без проблем, например через WM_KEYDOWN, а вот если в combobox'е, то нажатие ENTER почему-то не генерирует WM_KEYDOWN, а только мерзкий beep...



Зачем нужено перехватить ENTER? А так необходимо использовать субклассинг(subclass windows)

13K
26 апреля 2006 года
Cube
14 / / 09.03.2006
Цитата:
Originally posted by vitaly2003s
Зачем нужено перехватить ENTER? А так необходимо использовать субклассинг(subclass windows)



Вообще я пытаюсь сделать тулбар для IE на WinAPI. Все нужные контролы - кнопки, меню ведут себя как положено, кроме combobox'а. Сам combobox - это типа search, наподобе Google search, запоминающий что искали.
Структура тулбара такова: mainwindow->rebar->combobox|toolbar->button.

От beep я уже избавился, заменив WC_COMBOBOX на WC_COMBOBOXEX, однако проблема с ENTER не решилась.
Как я понимаю, при использовании субклассинга надо получить из comboboxa хендл дочернего окна(ЕDIT).
Пробовал так:

POINT p;

p.x=1;
p.y=1;

HWND EditSearch = ChildWindowFromPoint(hComboboxSearch, p);

Однако всегда возвращается NULL...

406
26 апреля 2006 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by Cube
Вообще я пытаюсь сделать тулбар для IE на WinAPI. Все нужные контролы - кнопки, меню ведут себя как положено, кроме combobox'а. Сам combobox - это типа search, наподобе Google search, запоминающий что искали.
Структура тулбара такова: mainwindow->rebar->combobox|toolbar->button.

От beep я уже избавился, заменив WC_COMBOBOX на WC_COMBOBOXEX, однако проблема с ENTER не решилась.
Как я понимаю, при использовании субклассинга надо получить из comboboxa хендл дочернего окна(ЕDIT).
Пробовал так:

POINT p;

p.x=1;
p.y=1;

HWND EditSearch = ChildWindowFromPoint(hComboboxSearch, p);

Однако всегда возвращается NULL...



Должно так работать:
HWND EditSearch = FindWindowEx( hComboboxSearch, 0, "edit", 0 );

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог