Страница 1 из 2
ComboBox
Добавлено: 24 ноя 2004, 14:44
Den
Привет участникам форума!
Будте добры, подскажите, как средствами С++, не используя MFC, вывести из таблицы Access поле в ComboBox? Заранее благодарен, Денис!
Добавлено: 24 ноя 2004, 15:01
Romeo
CB_ADDSTRING, CB_INSERTSTRING - используй то, что удобнее.
Добавлено: 24 ноя 2004, 16:32
Den
Romeo, извини, не понял. Если можно подробнее!
Добавлено: 24 ноя 2004, 17:41
Kolinus
по ходу никак
Насколько я помню там есть специальные классы для работы с таблицами.
Кста - в МСДН есть пример такой приклады
Добавлено: 24 ноя 2004, 17:48
Romeo
Взято из MSDN:
Код: Выделить всё
lResult = SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) CB_ADDSTRING, // message ID
(WPARAM) wParam, // = 0; not used, must be zero
(LPARAM) lParam // = (LPARAM) (LPCTSTR) lParam;
);
wParam
Specifies the zero-based index of the position at which to insert the string. If this parameter is –1, the string is added to the end of the list.
lParam
Pointer to the null-terminated string to be inserted. If you create the combo box with an owner-drawn style but without the CBS_HASSTRINGS style, the value of the lParam parameter is stored rather than the string to which it would otherwise point.
lResult = SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) CB_INSERTSTRING, // message ID
(WPARAM) wParam, // = (WPARAM) () wParam;
(LPARAM) lParam // = (LPARAM) (LPCTSTR) lParam;
);
wParam
Specifies the zero-based index of the position at which to insert the string. If this parameter is –1, the string is added to the end of the list.
Param
Pointer to the null-terminated string to be inserted. If you create the combo box with an owner-drawn style but without the CBS_HASSTRINGS style, the value of the lParam parameter is stored rather than the string to which it would otherwise point.
Короче по русски. Нужно послать комбобоксу соответствующее сообщения с помощью Win32 API
SendMessage (его параметры описаны выше). Сомбобокс идентифицируется своим дескриптором. Его можно получить используя Win32 API
GetDlgItem, у которой первый параметр должен быть дескриптором диалога, на котором лежит комбобокс, а второй - ресурс ID этого комбобокса.
Добавлено: 25 ноя 2004, 11:24
Den
Очень благодарен за помощь! Придется еще подумать, сразу не отложилось в голове, тем не менее.
А вот если с использованием MFC, но в своей функции, объявленой самим. То как лучше сделать? У меня в своей ф-ции почемуто MFC не работает. Собственно потому я и заговорил о С++. Но в принципе все равно С++ или (и) MFC, лишь бы в своей ф-ции.
Заранее благодарен! Отдельное спасибо Romeo!
Добавлено: 25 ноя 2004, 11:35
Romeo
Как это своя функция?
Добавлено: 25 ноя 2004, 11:44
Kolinus
Romeo усложняй - наверно все-таки актуальнее (ИМХО)
MFC не работает если ты в настройках проекта его не подрубил
И мне кажется что тебе стоит задать вопрос с самого начала, при этом хорошо сформулировав его - типа имеем .... надо ....
А то извини экстрасенсы все в отпуске

Добавлено: 25 ноя 2004, 11:53
Romeo
[offtopic]
Kolinus, я лишь исправился, чтобы полностью соответствовать изречению Вильяма Окамы, которое более известно под названием "принцип лезвия Окамы". Вот оригинал:
"Entites should not be multiplied beyond necessity"
- William Occam
[/offtopic]
Добавлено: 25 ноя 2004, 16:46
Den
В Visual C++6.0 приложение на базе диалогового окна, в нем ComboBox (IDC_COMBO_Spr).
//Объявленная мной ф-ия
void CtitOpen(void);
//Ее реализация
void CtitOpen(){
//Здесь нужен код, чтобы вывести поле табл. Access в ComboBox
}
С уважением, Денис! //просто прощаюсь, к коду отношения не имеет(шутка)