gugelhupf Geschrieben 22. August 2002 Geschrieben 22. August 2002 Ich hasse es solche Thread aufmachen zu müssen, aber ich finds einfach nicht. Ich möchte mein CListCtrl auf Mehrfachauswahl im Programm stellen. Aber ich finde den Style einfach nicht ! Also nicht im Editor auf Mehrfachauswahl sondern zur Laufzeit ! Zitieren
Klotzkopp Geschrieben 22. August 2002 Geschrieben 22. August 2002 ModifyStyle( LVS_SINGLESEL, 0 ); Zitieren
gugelhupf Geschrieben 22. August 2002 Autor Geschrieben 22. August 2002 Danke funzt ! Weiteres Problem: Ich hab ne Klasse von CListCtrl abgeleitet, weil ich will dass man auf das Drücken der "Enter"Taste ebenso Daten selektieren kann wie durch NM_DBLCLK. Nun fange ich das Ereignis der EnterTaste für das Control durch PreTranslateMessage ab. Nachdem das erfolgt ist, muss ich ja aus meiner MyListCtrl Klasse eine Message an das entsprechende Dialogfeld mit dem entsrpechenden LIstCtrl schicken. SendMessage(WM_NOTIFY,NM_DBLCLK,NULL); funzt nicht. Stürzt ab. Ideen ??? Zitieren
Klotzkopp Geschrieben 22. August 2002 Geschrieben 22. August 2002 NULL dürfte das Problem sein. Der lParam der NM_DBLCLK-Nachricht muss die Adresse einer NMHDR-Struktur enhalten. Ab Version 4.71 der Comctl32.dll wird als lParam offenbar sogar die Adresse einer NMITEMACTIVATE-Struktur erwartet. Nach dem, was ich gefunden habe, müssen iItem, iSubItem und ptAction mit gültigen Daten gefüllt sein. Zitieren
gugelhupf Geschrieben 23. August 2002 Autor Geschrieben 23. August 2002 Aber SendMessage erwartet doch im 3.Parameter einen long-Wert ?! Zitieren
gugelhupf Geschrieben 23. August 2002 Autor Geschrieben 23. August 2002 Hat sich erledigt. Man "biegt" einfach die eingehende Doppel-Click-Nachricht um: BOOL CMyListCtrl::PreTranslateMessage(MSG* pMsg) { if(pMsg->message==WM_KEYDOWN) { if(pMsg->wParam==13) pMsg->message=WM_LBUTTONDBLCLK; } return CListCtrl::PreTranslateMessage(pMsg); } [/PHP] Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.