Форум: "WinAPI";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
ВнизКак получить выбранный Item в ComboBoxEx Найти похожие ветки
← →
Андрей Жук © (2005-06-07 11:48) [0]Т.е. отслеживать событие изменение легко. А вот как получить доступ в выбранному Item?
← →
Андрей Жук © (2005-06-07 12:28) [1]Пробую так
COMBOBOXEXITEM item;
SendMessage((HWND)lParam, CBEM_GETITEM,0,(LPARAM)&item);
MessageBoxEx(hWindow,(LPTSTR) item.pszText,"Процес",MB_OK,419);
Получаю мусор
← →
nikkie © (2005-06-07 12:33) [2]где заполнение структуры?
mask
CBEIF_TEXT The pszText member is valid or must be filled in.
pszText
Address of a character buffer that contains or receives the item"s text. If text information is being retrieved, this member must be set to the address of a character buffer that will receive the text. The size of this buffer must also be indicated in cchTextMax
← →
Игорь Шевченко © (2005-06-07 12:38) [3]Андрей Жук © (07.06.05 11:48)
Ты эта...TFM читай до того, как программы писать. Эт не политика, "на хапок" не пройдет.
← →
Андрей Жук © (2005-06-07 12:42) [4]Ну вот, объявляю
COMBOBOXEXITEM item;
char itemtext[255];
item.mask = CBEIF_TEXT;
item.pszText = itemtext;
Все равно мусор
← →
nikkie © (2005-06-07 12:47) [5]ты доку-то прочел?
The size of this buffer must also be indicated in cchTextMax
← →
Андрей Жук © (2005-06-07 13:07) [6]Ага...
COMBOBOXEXITEM item;
char Buffer[256]="test\0";
item.mask = CBEIF_TEXT;
item.pszText = Buffer;
item.cchTextMax = 256;
if (wmEvent==CBN_SELCHANGE)
if((HWND)lParam == hComboBox)
{
SendMessage(hComboBox, CBEM_GETITEM,0,(LPARAM)&item);
MessageBoxEx(hWindow,(LPTSTR) Buffer,"Процес",MB_OK,419);
}
И что мы в результате получим?
Test
← →
Андрей Жук © (2005-06-07 14:24) [7]Может, кому пригодится
TCHAR szText[256];
COMBOBOXEXITEM cbei;
ZeroMemory(&cbei, sizeof(cbei));
cbei.mask = CBEIF_TEXT;
cbei.pszText = szText;
cbei.cchTextMax = sizeof(szText);
SendMessage(hComboBox, CBEM_GETITEM, 0, (LPARAM)&cbei);
← →
nikkie © (2005-06-07 16:47) [8]>И что мы в результате получим?
>Test
наверное потому, что в item.iIndex мусор
>ZeroMemory(&cbei, sizeof(cbei));
в этом варианте просто занулил iIndex. хотя ZeroMemory - это правильно.
>TCHAR szText[256];
ну раз уж TCHAR, то
cbei.cchTextMax = sizeof(szText) / sizeof(TCHAR);
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c