Listview im Reportstyle, wie Subitem selectieren?



  • Hallo, ich habe da eine Listview im Reportstyle ohne LVS_EX_FULLROWSELECT. Jetzt habe ich den Listview mit Items gefüllt, was auch gut geklappt hat, jedoch läßt sich nur der nur je Zeile der erste Item mit der Maus auswählen, was muss ich machen daß ich jeden Item einzeln anklicken kann und er die blaue Auswahlmarkierung erhält? Danke



  • Ich brauch da mal eine Punkt zum Ansetzen, muss ich den Style auf LVS_OWNERDRAWFIXED setzen und WM_DRAWITEM im Parentfenster abfangen?


  • Mod

    EIn weitaus einfacherer Ansatz ist NM_CUSTOMDRAW. Auf www.codeguru.com gibt das dazu einen sehr guten Artikel.



  • Wenn ich LVN_ITEMCHANGING abfange und laut MSDN mit TRUE returniere sollte doch eigendlich beim Klick auf einen Listviewitem das Verändern des Items verhindert werden. Aber der Item bekommt trotzdem die Selectionmark, warum?


  • Mod

    Dem ist auch so. Verwende ich mehrfach und funktioniert.



  • Ok schaut wohl so aus, daß ich da was Falsch gemacht habe, eigentlich sah mein eventhandle so aus:

    case LVN_ITEMCHANGING:
    		return 1;
    

    jetzt hab ich das so gemacht, weil ich was vergleichbares in einem anderen Sourcecode gesehen habe:

    case LVN_ITEMCHANGING:
    		SetWindowLong(hWnd_ListView, DWL_MSGRESULT, TRUE);
    		return 1;
    

    ja und jetzt geht's. Eigentlich war ich immer der Auffassung, wenn da in der MSDN steht, return value ist 1 oder 0, muss man nur ein return 1; oder return 0; zurückgeben und gut ist, liege ich da falsch? Könntest du mir das bitte erklären wie ich das richtig zu machen habe, danke. Im übrigen habe ich dank deines Ratschlages mit NM_CUSTOMDRAW auch das Selektieren einzelner Liestviewzellen hinbekommen, danke nochmals für den guten Hinweiss.


  • Mod

    Das hängt eben davon ab, ob Du eine WindowProc oder eine DialogProc hast!


Anmelden zum Antworten