CListCtrl unselect

JoachimJogi

Mitglied
Hi,

hat jemand eine Idee, wie man bei einer CListCtrl die Markierung entfernt? Es handelt sich um eine reines Anzeigefenster (aber in Tabellenform, daher eine ListCtrl im Reportstyle). Nun möchte ich unterbinden, dass der User die störendeMarkeirung setzt.

Ich habe bereits m_list.SetItemState(1, 0, LVIS_SELECTED); getestet, aber das hat leider nicht funktioniert. Fehlt hier noch ein Update irgendwas?
Ist die OnClickList Nachricht die richtige?

Danke!
 
Hallo.

dann geht wohl nur ein Owner Draw Control. Leite eine eigene Klasse von CListCtrl ab, verpasse dem Control den Style "LVS_OWNERDRAWFIXED" und überschreibe die Methode "DrawItem". Dabei kannst du dann für die Ausgabe eine etwaige Selection ignorieren.

Gruß
MCoder
 
Hi,

wenn du ein eigenes ListCtrl von CListControl abgelitten hast, mach doch einfach folgendes:

Füge den Eventhandler für WM_LBUTTONDOWN ein und returne einfach 1;

Code:
void CMyList::OnLButtonDown(UINT nFlags, CPoint point)
{
    return;
}

Dein Header und die Scrollbars funktionieren dann weiterhin aber es kann nix mehr selektiert werden ;-)

Funktioniert bei mir prima!

Falls du das Standard CListCtrl verwendes, musst du das in der View oder Dialogklasse in PreTranslateMessage machen, die dein ListControl enthält.

Viel Spaß,

Peter
 

Neue Beiträge

Zurück