ComboBox

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Den
Сообщения: 62
Зарегистрирован: 09 сен 2004, 15:10

Привет участникам форума!
Будте добры, подскажите, как средствами С++, не используя MFC, вывести из таблицы Access поле в ComboBox? Заранее благодарен, Денис!
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

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

Romeo, извини, не понял. Если можно подробнее!
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

по ходу никак
Насколько я помню там есть специальные классы для работы с таблицами.
Кста - в МСДН есть пример такой приклады
В SAD - все в SAD.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Взято из 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 этого комбобокса.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Den
Сообщения: 62
Зарегистрирован: 09 сен 2004, 15:10

Очень благодарен за помощь! Придется еще подумать, сразу не отложилось в голове, тем не менее.
А вот если с использованием MFC, но в своей функции, объявленой самим. То как лучше сделать? У меня в своей ф-ции почемуто MFC не работает. Собственно потому я и заговорил о С++. Но в принципе все равно С++ или (и) MFC, лишь бы в своей ф-ции.
Заранее благодарен! Отдельное спасибо Romeo!
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

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

Romeo усложняй - наверно все-таки актуальнее (ИМХО)

MFC не работает если ты в настройках проекта его не подрубил
И мне кажется что тебе стоит задать вопрос с самого начала, при этом хорошо сформулировав его - типа имеем .... надо ....
А то извини экстрасенсы все в отпуске ;)
В SAD - все в SAD.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

[offtopic]
Kolinus, я лишь исправился, чтобы полностью соответствовать изречению Вильяма Окамы, которое более известно под названием "принцип лезвия Окамы". Вот оригинал:

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

В Visual C++6.0 приложение на базе диалогового окна, в нем ComboBox (IDC_COMBO_Spr).

//Объявленная мной ф-ия
void CtitOpen(void);

//Ее реализация
void CtitOpen(){

//Здесь нужен код, чтобы вывести поле табл. Access в ComboBox

}

С уважением, Денис! //просто прощаюсь, к коду отношения не имеет(шутка)
Ответить