Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > CListCtrl и выделение


Автор: tonchitos 18.7.2008, 19:19
В общем  есть CListCtrl...

 выделяю айтем таким способом:

Код

    m_ListBoxType.SetItem(pos, 0, LVIF_STATE, NULL, 0, LVIS_SELECTED, LVIS_SELECTED |LVIS_ACTIVATING, 0); 



выделяется, сереньким... ну бог с ним каким цветом...

фишка в том что я не пойму как узнать, какой элемент был выделен...

m_ListBoxType.GetSelectionMark()

работает только если айтем выделяет юзер

если выделяется программно (и кстати почему сереньким), то GetSelectionMark() не работает... ((((

Автор: Torsten 20.7.2008, 21:11
Нашел вот http://forum.shelek.ru/index.php/topic,9487.0.html тему на другом форуме, посмотри.
И по поводу получение выделенных элементов, в MSDN так это действие показано :
Код

CListCtrl* pListCtrl = static_cast<CListCtrl*>(GetDlgItem(IDC_YOURLISTCONTROL));
ASSERT(pListCtrl);

POSITION pos = pList->GetFirstSelectedItemPosition();
if (pos == NULL)
   TRACE0("No items were selected!\n");
else
{
   while (pos)
   {
      int nItem = pList->GetNextSelectedItem(pos);
      TRACE1("Item %d was selected!\n", nItem);
      // you could do your own processing on nItem here
   }
}


Автор: tonchitos 21.7.2008, 16:14
я эту темку уже читала...
Там про то как выделить этот айтем чертов...

а как получить выделение при не множественном выделении айтема - нету....
пробовала гетайтем - не то

Автор: Torsten 21.7.2008, 23:39
хм ... я вот использую в своем проекте GetFirstSelectedItemPosition и GetNextSelectedItem - и без проблем получается с выделенными элементами работать.

Попробуй еще вот так выделить :
Код

SetItemState(nSelectItem, LVIS_SELECTED, LVIS_SELECTED | LVIS_FOCUSED);


А вот http://www.codeproject.com/KB/list/listctrldemo.aspx с примером использования CListCtlr, на английском языке. 

Автор: Nastya 22.7.2008, 09:30
А CListCtrl::SetSelectionMark  не работает?

Автор: S.A.G. 22.7.2008, 10:51
Custom Draw точно поможет во всех операциях с рисованием, выделением и т.п. smile

Автор: tonchitos 22.7.2008, 14:59
Цитата(Nastya @  22.7.2008,  09:30 Найти цитируемый пост)
CListCtrl::SetSelectionMark  не работает? 

это если разрешено множественное выделение

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)