![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Koddy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 6.10.2003 Репутация: нет Всего: нет |
Вопрос первый.
Когда я юзаю CString::Delete(а, b) (a=0, b=число), то все ок.Если же а=число, а b= конец_стороки(CString::GetLength())? то прога вываливается.Почему? Вопрос второй. Есть у меня ComboBox. Заполняю я его следующим образом -------------------- void CMyBar::OnInitialUpdate() { CFormView::OnInitialUpdate(); // TODO: Add your specialized code here and/or call the base class GetLogicalDriveStrings(500,m_drives_name); char *ptr; ptr=m_drives_name; CComboBox* pBox1; pBox1 = (CComboBox*) GetDlgItem(IDC_COMBO1); while (*ptr) { pBox1->AddString(ptr); ptr+=strlen(ptr)+1; } pBox1->SetCurSel(1); ptr=m_drives_name; CComboBox* pBox2; pBox2 = (CComboBox*) GetDlgItem(IDC_COMBO2); while (*ptr) { pBox2->AddString(ptr); ptr+=strlen(ptr)+1; } pBox2->SetCurSel(1); ...и т.д. ---------------------------------- Но почему-то у меня он не расскрывается на полную, а видна тольно одна строчка(остальное надо стрелками выбирать).Тоже не понятность...:-/ ComboBox находится на форме(CMyBar). Это сообщение отредактировал(а) Koddy - 6.10.2003, 21:24 |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Модератор: Пожалуйста, один топик - один вопрос. Это наши правила. Если бы это не было Вашим первым сообщением, то я бы его удалил.
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
если b=GetLength(), тогда b показывает не на последний символ строки, а за её пределы (индексы-то с нуля отсчитываются !), бери GetLength()-1
CComboBox::SetDroppedWidth - ответ на 2-й вопрос -------------------- ![]() |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
CComboBox::SetExtendedUI
|
|||
|
||||
| Koddy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 6.10.2003 Репутация: нет Всего: нет |
По поводу первого вопроса - пробовал, та же картина.
По поводу второго вопроса видимо я видимо не совсем понятно написал. Список комбобокса у меня допустим состоит из 10 элементов, а раскрывается только на один вниз.Что бы добраться до остальных надо принудительно "стрелку вниз" нажимать. pBox1->SetExtendedUI(TRUE); PBox1->SetDroppedWidth(::GetSystemMetrics(SM_CXVSCROLL) +2*::GetSystemMetrics(SM_CXEDGE)); (взято из MSDN) Роли тоже не сыграло. |
|||
|
||||
| Ars |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 28.8.2003 Где: Московская обл. Репутация: 2 Всего: 2 |
-------------------- Есть многое на свете, друг Горацио, С чем очень долго можно прое..! |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
попробуй SetDroppedWidth(300)
-------------------- ![]() |
|||
|
||||
| Koddy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 6.10.2003 Репутация: нет Всего: нет |
Arsу - setMaxDropDownItems а как эту функцию юзать?
mr.DUDA - не играет роли, хотя судя по описанию должно вроде. |
|||
|
||||
| Ars |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 28.8.2003 Где: Московская обл. Репутация: 2 Всего: 2 |
Прошу прощения, не туда смотрел. Это метод класса ComboBox из Windows Foundation Classes. Для CComboBox надо юзать SetDroppedWidth. -------------------- Есть многое на свете, друг Горацио, С чем очень долго можно прое..! |
|||
|
||||
| Koddy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 6.10.2003 Репутация: нет Всего: нет |
Пробовал - тоже самое, ComboBox все равно не польностью развертывается. |
|||
|
||||
| Ars |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 28.8.2003 Где: Московская обл. Репутация: 2 Всего: 2 |
Koddy, как ты вообще добиваешься, чтобы ComboBox показывал одну строку? Там же по умолчанию должно раскрываться штук восемь.
Попробуй создать чистый ComboBox и помаленьку добавлять туда айтемы и гляди, что будет. -------------------- Есть многое на свете, друг Горацио, С чем очень долго можно прое..! |
|||
|
||||
| Koddy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 6.10.2003 Репутация: нет Всего: нет |
Ars,дело в том, что если я в редакторе ресурсов прописываю итемы ComboBox, то все ОК - открываются все.А если я программно заполняю, но только виден один-два.
Это сообщение отредактировал(а) Koddy - 10.10.2003, 19:40 |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Вай-вай, какой хитрый у тебя ComboBox. А ты часом его не рисуешь сам по Owner Draw ? Мот, причина в этом (где-то ты не так определяешь размер вывалившейся части) ?
-------------------- ![]() |
|||
|
||||
| Madest |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 27.11.2003 Где: Городок Репутация: нет Всего: нет |
Такая же проблема. Что делать-то? Видно первый элемент, и кусочек второго. ComboBox стандартный VC6.0.
--------------------
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |