COMBOBOX

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Ответить
Rooff
Сообщения: 3
Зарегистрирован: 05 окт 2004, 10:48

05 окт 2004, 11:08

Подскажите!
Мне нужно программно выбрать элемент из Combobox.
Но я не знаю какой функцией(ями) это сделать

Заранее благодарен
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

05 окт 2004, 12:07

Подробнее, пожалуйста. Постановку задачи и требуемые результаты в форум.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Rooff
Сообщения: 3
Зарегистрирован: 05 окт 2004, 10:48

05 окт 2004, 12:15

Romeo писал(а):Подробнее, пожалуйста. Постановку задачи и требуемые результаты в форум.
Есть виндовое окошко с различными компонентами включая и COMBOBOX. В этом Comboboxe есть перечень значений. Мне нужно выстваить конкретное значение - вот и все. В текстовые поля я вставляю без проблем, а вот как с комбобохом не знаю
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

05 окт 2004, 14:06

Если вставить значение в сам edit box, который является частью combo box'а, то просто

Код: Выделить всё

SetWindowText(hComboBox, _T("My new string"));
Если же вставить строчку в list box, который является частью combo box, то можно воспользоваться AddItem или что-то в этом роде.

P.S. А ещё было бы неплохо узнать какими вы библиотеками пользуетесь при приектировании, господин Rooff (ну там MFC, ATL или вообще библиотек нет - голый API).
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Eugie
Сообщения: 707
Зарегистрирован: 17 фев 2004, 23:59
Откуда: SPb

05 окт 2004, 16:17

Код: Выделить всё

SendMessage( 
  hwndComboBox,        // handle to destination window 
  CB_SETCURSEL,       // message to send
  (WPARAM) wParam,    // item index
  (LPARAM) lParam     // not used; must be zero
);
Rooff
Сообщения: 3
Зарегистрирован: 05 окт 2004, 10:48

05 окт 2004, 17:04

Romeo писал(а):Если вставить значение в сам edit box, который является частью combo box'а, то просто

Код: Выделить всё

SetWindowText&#40]
Если же вставить строчку в list box, который является частью combo box, то можно воспользоваться AddItem или что-то в этом роде.

P.S. А ещё было бы неплохо узнать какими вы библиотеками пользуетесь при приектировании, господин [b]Rooff[/b] (ну там MFC, ATL или вообще библиотек нет - голый API).[/quote]

Я вобще-то описался - мне нужно выбрать элемент из списка
Программка на Перле использует модуль винапи
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

05 окт 2004, 17:19

SendMessage(
(HWND) hWnd, // handle to destination window
CB_GETLBTEXT, // message to send
(WPARAM) wParam, // item index
(LPARAM) lParam // receives string (LPCSTR)
);
Получает элемент из списка комбобокса по его индексу.
Еще можно как сказал Eugie только потом еще надо считать текст из окна -
int GetWindowText(
HWND hWnd, // handle to window or control
LPTSTR lpString, // text buffer
int nMaxCount // maximum number of characters to copy
);
В SAD - все в SAD.
Ответить