Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Два вопроса, CString::Delete и ComboBox 
:(
    Опции темы
Koddy
Дата 6.10.2003, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
RAN
Дата 6.10.2003, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Модератор: Пожалуйста, один топик - один вопрос. Это наши правила. Если бы это не было Вашим первым сообщением, то я бы его удалил.
PM MAIL ICQ   Вверх
mr.DUDA
Дата 6.10.2003, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



если b=GetLength(), тогда b показывает не на последний символ строки, а за её пределы (индексы-то с нуля отсчитываются !), бери GetLength()-1

CComboBox::SetDroppedWidth - ответ на 2-й вопрос


--------------------
user posted image
PM MAIL WWW   Вверх
DENNN
Дата 7.10.2003, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



CComboBox::SetExtendedUI
PM ICQ   Вверх
Koddy
Дата 7.10.2003, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.10.2003

Репутация: нет
Всего: нет



По поводу первого вопроса - пробовал, та же картина.sad.gif
По поводу второго вопроса видимо я видимо не совсем понятно написал.
Список комбобокса у меня допустим состоит из 10 элементов, а раскрывается только на один вниз.Что бы добраться до остальных надо принудительно "стрелку вниз" нажимать.
pBox1->SetExtendedUI(TRUE);
PBox1->SetDroppedWidth(::GetSystemMetrics(SM_CXVSCROLL) +2*::GetSystemMetrics(SM_CXEDGE));
(взято из MSDN)
Роли тоже не сыграло.
PM MAIL   Вверх
Ars
Дата 7.10.2003, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 28.8.2003
Где: Московская обл.

Репутация: 2
Всего: 2



Цитата
setMaxDropDownItems sets the maximum number of items that can be displayed in the drop-down list box of the combo box. 



--------------------
Есть многое на свете, друг Горацио,
С чем очень долго можно прое..!
PM MAIL   Вверх
mr.DUDA
Дата 7.10.2003, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



попробуй SetDroppedWidth(300)


--------------------
user posted image
PM MAIL WWW   Вверх
Koddy
Дата 7.10.2003, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.10.2003

Репутация: нет
Всего: нет



Arsу - setMaxDropDownItems а как эту функцию юзать?
mr.DUDA - не играет роли, хотя судя по описанию должно вроде.
PM MAIL   Вверх
Ars
Дата 8.10.2003, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 28.8.2003
Где: Московская обл.

Репутация: 2
Всего: 2



Цитата
setMaxDropDownItems

Прошу прощения, не туда смотрел. Это метод класса ComboBox из Windows Foundation Classes.
Для CComboBox надо юзать SetDroppedWidth.


--------------------
Есть многое на свете, друг Горацио,
С чем очень долго можно прое..!
PM MAIL   Вверх
Koddy
Дата 8.10.2003, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.10.2003

Репутация: нет
Всего: нет



Цитата

Прошу прощения, не туда смотрел. Это метод класса ComboBox из Windows Foundation Classes.
Для CComboBox надо юзать SetDroppedWidth.

Пробовал - тоже самое, ComboBox все равно не польностью развертывается.
PM MAIL   Вверх
Ars
Дата 9.10.2003, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 28.8.2003
Где: Московская обл.

Репутация: 2
Всего: 2



Koddy, как ты вообще добиваешься, чтобы ComboBox показывал одну строку? Там же по умолчанию должно раскрываться штук восемь.
Попробуй создать чистый ComboBox и помаленьку добавлять туда айтемы и гляди, что будет.


--------------------
Есть многое на свете, друг Горацио,
С чем очень долго можно прое..!
PM MAIL   Вверх
Koddy
Дата 10.10.2003, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 6.10.2003

Репутация: нет
Всего: нет



Ars,дело в том, что если я в редакторе ресурсов прописываю итемы ComboBox, то все ОК - открываются все.А если я программно заполняю, но только виден один-два.user posted imageВот пример того, что у меня вышло, а там дисков много.

Это сообщение отредактировал(а) Koddy - 10.10.2003, 19:40
PM MAIL   Вверх
mr.DUDA
Дата 11.10.2003, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Вай-вай, какой хитрый у тебя ComboBox. А ты часом его не рисуешь сам по Owner Draw ? Мот, причина в этом (где-то ты не так определяешь размер вывалившейся части) ?


--------------------
user posted image
PM MAIL WWW   Вверх
Madest
Дата 4.3.2004, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 27.11.2003
Где: Городок

Репутация: нет
Всего: нет



Такая же проблема. Что делать-то? Видно первый элемент, и кусочек второго. ComboBox стандартный VC6.0.
--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0643 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.