Текущий архив: 2006.09.24;
Скачать: CL | DM;
ВнизVS: проблема с ComboBoxEx32 Найти похожие ветки
← →
_dimka © (2006-09-04 00:54) [0]Может кто нить подскажет...
в OnDropdown, пытаюсь заполнить комбобокс значениями, но почему то первый раз он показывает только одно значение. Почему?
void ChgDlg::OnCbnDropdownComboboxex1()
{
int n;
char dd[4];
DWORD dr = GetLogicalDrives();
for( int i = 0; i < 26; i++ )
{
n = ((dr>>i)&0x00000001);
if( n == 1 )
{
dd[0] = char(65+i); dd[1] = ":"; dd[2] = "\\"; dd[3] = 0;
COMBOBOXEXITEM it;
it.mask = CBEIF_TEXT;
it.iItem = i;
it.iOverlay = 0;
it.lParam = 0;
it.cchTextMax = 50;
it.pszText = dd;
m_cCombo.InsertItem(&it);
}
}
}
Заранее спасибо.
← →
Ketmar © (2006-09-04 01:08) [1]что-то на Delphi не похоже...
← →
_dimka © (2006-09-04 01:14) [2]мм... ну да не похоже, я ж в потрепаться и написал, вдруг кто-то ответит...
← →
GuAV © (2006-09-04 01:28) [3]
> OnCbnDropdownComboboxex1()
Почему при раскрывании, а не сразу ?
> it.iItem = i;
Почему i ?
думаю, тут нужен отдельный индекс.
> for( int i = 0; i < 26; i++ )
я бы написал такint j = 0;
for ( int n = dr; n; n >>=1 )
if (n & 1)
{...
it.Item = j++
}
ps: MFC не знаю, С++ только начал
← →
_dimka © (2006-09-04 01:52) [4]
> Почему при раскрывании, а не сразу ?
Потому что нужно обновлять при раскрытии, я там забыл удаление дописать...
> Почему i ?
> думаю, тут нужен отдельный индекс.
не обязательно.. но можно...
Дело в том что если добавлять при OnDropdown, то если до этого комбобокс был пуст, то добавляеться только одна строка, если была хоть одна то все ок...
← →
_dimka © (2006-09-04 19:06) [5]> Почему i ?
> думаю, тут нужен отдельный индекс.
Я - тормоз, спасибо там действительно должен быть отдельный индекс :)
Страницы: 1 вся ветка
Текущий архив: 2006.09.24;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.047 c