Страница 1 из 1

Подскажите! List Control. Ввод данных с клавиатуры

Добавлено: 01 май 2011, 16:24
juky88
Есть задача: вводим числа с клавиатуры, присваиваем им с помощью combobox определенное свойств (типа да/нет). Ввод чисел не ограничен, т.е пользователь может ввести сколько угодно чисел и рядом с каждым числом должен появляться combobox.

Как вариант можно использовать list control:

Код: Выделить всё

BEGIN_MESSAGE_MAP(CMPDDlg, CDialog)
...
ON_NOTIFY(LVN_ENDLABELEDIT, IDC_LIST2, &CMPDDlg::OnLvnEndlabeleditParamPro b)//редактирование
ON_NOTIFY(LVN_BEGINLABELEDIT, IDC_LIST2, &CMPDDlg::OnLvnBeginlabeleditParamP rob)
...
END_MESSAGE_MAP()

BOOL CMPDDlg::OnInitDialog()
{
CDialog::OnInitDialog();
...
//CListCtrl lc_paramProb;
lc_paramProb.SetExtendedStyle (LVS_REPORT| LVS_EX_CHECKBOXES| LVS_OWNERDATA| LVS_EDITLABELS);
lc_paramProb.InsertColumn(0, _T("(Пакет) Вероятность ошибки"),LVCFMT_LEFT, 180, -1);
int Index=lc_paramProb.InsertItem(LVIF_ TEXT,0, _T(" "),0,0,0,NULL);
...
}

void CMPDDlg::OnLvnEndlabeleditParamProb (NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNM HDR);
LVITEM item = pDispInfo->item;
CString field;
// пользователь отменил ввод
if (item.pszText == NULL)
{
*pResult = 0; // "0" информирует систему о неуспешном вводе
return;
}

// пользователь произвёл ввод, надо обновить наши данные
field = item.pszText;

*pResult = 1; // "1" информирует систему об успешном вводе
}

void CMPDDlg::OnLvnBeginlabeleditParamPr ob(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNM HDR);

*pResult = 0;
}
Как правильно использовать list control не знаю. Обязательно ли использовать функции OnLvnEndlabeleditParamProb() и OnLvnBeginlabeleditParamProb() вместе и для чего тогда вторая функция?

У меня данные с клавиатуры вводятся, но по нажатию enter сразу пропадают и combobox не появляется.

Подскажите, пожалуйста, как правильно использовать list control в данном случае? и стоит ли использовать именно его, может есть другие варианты?

ПроблеМКА устранена !!

Добавлено: 01 май 2011, 18:46
juky88
Числа вводятся, комбобоксы появляются, но тормозит немного. Поясню: пытаюсь установить курсор в строку для ввода, но сам курсор появляется только после второго однократного нажатия и то НЕ СРАЗУ. :confused:

Re: Подскажите! List Control. Ввод данных с клавиатуры

Добавлено: 04 май 2011, 21:59
Romeo
Приведи кусок кода в последней редакции - попробуем помочь.

Re: Подскажите! List Control. Ввод данных с клавиатуры

Добавлено: 05 май 2011, 00:55
juky88
уже выкрутилась :)
СПАСИБО!!!!!