ListCtrl



  • Hallo,

    ich verwende ein ListCtrl, jedes Item ist ein Image. Eigentlich sollte das
    SingelSelected sein ist auch so gesetzt.

    Scenario A)
    Ein Klick und das andere Item der Liste deaktiviert sich von alleine.
    Aktiv und Fokusiert glowed das angeklickte Wunderbar.

    Scenario C)
    Ich Aktiviere programmatisch ein Item via :

    void CThumbNailCtrl::SelectItem(int iItem)
    {
    	const DWORD state(LVIS_SELECTED | LVIS_FOCUSED | LVIS_DROPHILITED | LVIS_GLOW);
    	int cnt(CListCtrl::GetItemCount());
    	for (int i = 0; i<cnt; i++)
    	{
    		if (i == iItem)
    		{
    			CListCtrl::SetItemState(iItem, state, state);
    		}
    		else 
    			CListCtrl::SetItemState(i, 0, state);
    	}
    
    	CListCtrl::EnsureVisible(iItem, TRUE);
    }
    

    Ab jetzt ist es so, das wenn ich ein anderes Item anklicke, zwei Items
    aktiviert sind. Und sich das programmatisch aktivierte auch nicht mehr
    deaktivieren lässt.

    Leider löst jedes ändern der Selektierung ein Event OnSelctChange aus
    so komme ich in eine rekursion, wenn ich die items alle Kontrolliert
    re erneuere in dem ich wie im Code die Selektierungsdarstellung verändere.

    Danke für Hilfestellung
    Gruß
    Karsten



  • Eine Lösung ist , auf Focusing glowing und Highlight zu verzichten

    und das Problem ist prinzipell beseitig.

    const DWORD state(LVIS_SELECTED);// | LVIS_FOCUSED | LVIS_DROPHILITED | LVIS_GLOW);
    

Anmelden zum Antworten