Кликнуть на таблицу и получить номер строки
В классе объявлена ListCtrl m_ListUz; Ниже код. Видимо вопрос сводится как перехватить событие нажатия на m_ListUz? За пример буду особо благодарен. Спасибо.
int TableUzel::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CPropertyPage::OnCreate(lpCreateStruct) == -1)
return -1;
m_ListUz.Create(WS_CHILD|WS_BORDER|WS_VISIBLE|LVS_REPORT,CRect(0,0,500,500),this,1111L);
//Указываем различные стили
m_ListUz.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_ONECLICKACTIVATE);
//Добавляем колонки
m_ListUz.InsertColumn(0,_T("Имя узла"),LVCFMT_LEFT,100);
m_ListUz.InsertColumn(1,_T("Колонка 2"),LVCFMT_LEFT,100);
m_ListUz.InsertColumn(2,_T("Колонка 3"),LVCFMT_LEFT,100);
for(int i=0;i<countUzel;i++) // i - номер строки
{
m_ListUz.InsertItem(i,masUzel.Name);
//Вписываем данные в первую строчку, вторую колонку
m_ListUz.SetItemText(i,1,_T("нет данных"));
m_ListUz.SetItemText(i,2,_T("нет данных"));
}
return 0;
}
Цитата: Jeyson
Доброго времени суток всем. Делаю таблицу, все работает. Теперь возникла задача: кликаем на строку и получить ее номер.
В классе объявлена ListCtrl m_ListUz; Ниже код. Видимо вопрос сводится как перехватить событие нажатия на m_ListUz? За пример буду особо благодарен. Спасибо.
int TableUzel::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CPropertyPage::OnCreate(lpCreateStruct) == -1)
return -1;
m_ListUz.Create(WS_CHILD|WS_BORDER|WS_VISIBLE|LVS_REPORT,CRect(0,0,500,500),this,1111L);
//Указываем различные стили
m_ListUz.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_ONECLICKACTIVATE);
//Добавляем колонки
m_ListUz.InsertColumn(0,_T("Имя узла"),LVCFMT_LEFT,100);
m_ListUz.InsertColumn(1,_T("Колонка 2"),LVCFMT_LEFT,100);
m_ListUz.InsertColumn(2,_T("Колонка 3"),LVCFMT_LEFT,100);
for(int i=0;i<countUzel;i++) // i - номер строки
{
m_ListUz.InsertItem(i,masUzel.Name);
//Вписываем данные в первую строчку, вторую колонку
m_ListUz.SetItemText(i,1,_T("нет данных"));
m_ListUz.SetItemText(i,2,_T("нет данных"));
}
return 0;
}
В классе объявлена ListCtrl m_ListUz; Ниже код. Видимо вопрос сводится как перехватить событие нажатия на m_ListUz? За пример буду особо благодарен. Спасибо.
int TableUzel::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CPropertyPage::OnCreate(lpCreateStruct) == -1)
return -1;
m_ListUz.Create(WS_CHILD|WS_BORDER|WS_VISIBLE|LVS_REPORT,CRect(0,0,500,500),this,1111L);
//Указываем различные стили
m_ListUz.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_ONECLICKACTIVATE);
//Добавляем колонки
m_ListUz.InsertColumn(0,_T("Имя узла"),LVCFMT_LEFT,100);
m_ListUz.InsertColumn(1,_T("Колонка 2"),LVCFMT_LEFT,100);
m_ListUz.InsertColumn(2,_T("Колонка 3"),LVCFMT_LEFT,100);
for(int i=0;i<countUzel;i++) // i - номер строки
{
m_ListUz.InsertItem(i,masUzel.Name);
//Вписываем данные в первую строчку, вторую колонку
m_ListUz.SetItemText(i,1,_T("нет данных"));
m_ListUz.SetItemText(i,2,_T("нет данных"));
}
return 0;
}
создай свой клас от CListCtrl в котором определи обработчик нажатия мыши, и в этом обработчике делай все что надо
пример для кнопки
Тут посмотри.
Была недавно похожая тема.