CListCtrl mit Checkboxen



  • Hallo.

    Wie bekomme ich herraus, welche Listbox der User angeklickt hat? Also eine Funktion, die einen integer zurückgibt, in der die aktuelle Box steht.



  • Du kannst für jedes Control eine Nachricht definieren. Beiklick oder bei doppelklick, u.s.w
    Oder hab ich was falsch verstanden.



  • Naja, ich weiß, dass ich das ändern einsr Checkbox in CListCtrl mit LVN_ITEMCHANGED abfangen kann. Das klappt auch ganz gut, aber wie bekomme ich herraus, welche Box er geändert hat? Das meinte ich mit integer zurückgeben



  • Ich habe jetzt mal die MSDN genauer gesucht und die Funktion CListCtrl::GetSelectedCount gefunden. Nun habe ich aber das Problem, dass, egal, wieviele Checkboxes markiert sind, diese Funktion immer 0 oder einen ganz falschen Wert (1 oder 9 😮 ) zurückgibt. Wie kann das sein?

    UINT i, uSelectedCount = m_cPluginList.GetSelectedCount();
    	int  nItem = -1;
    
    	// Update all of the selected items.
    	if (uSelectedCount > 0)
    	{
    	   for (i=0;i < uSelectedCount;i++)
    	   {
    		  nItem = m_cPluginList.GetNextItem(nItem, LVNI_SELECTED);
    		  ASSERT(nItem != -1);
    		  CString temp;
    		  temp.Format("%d",nItem);
    		  MessageBox(temp);
    	   }
    }
    

    m_cPluginList ist die Member auf mein CListCtrl. Der Code ist aus dem Beispiel aus der MSDN kopiert und nur ein bisschen verändert. Wieso funktioniwert der Code dann nicht? 😕


Anmelden zum Antworten