Einfachen und doppelten Mausklick in CListCtrl abfragen
-
Hallo ich bin noch ein ziemlicher Anfänger in VC++ und MFC-Programmierung.
Ich habe ein MFC-Programm geschrieben, daß eine Liste in einem Dialog hat.
Nun wollte ich zwei Aktionen abfragen:-Bei Doppelklick mit der Maus auf ein Listitem Aktion1
-Bei einfachem Klick auf Listitem Aktion2Aber er erkennt den Event Doppelklick nicht mehr sondern sendet mir immer nur den einfachen Mausklick-Event, egal wie schnell ich den Doppelklick mache.
Was kann ich machen, damit er den Doppelklick erkennt?
Danke schon im Vorraus
-
Du könntest z.B. den Kram aus dem Einfach-Klick herausnehmen und in das Ereignis "Auswahl hat sich geändert" packen. Dann ist das Einfach-Klick überflüssig und kann weg und Doppel-Klick wird wieder erkannt.
Müsste dann ON_LBN_SELCHANGE sein (für SELection CHANGE).
-
Ich habe eine von CListCtrl abgeleitete Klasse für meine Listen, da kannst du ON_WM_LBUTTONDBLCLK nutzen.

-
Bei einem Doppelklick wird zuerst die Meldung für den ersten Klick gesendet und kurz danach eine zweite mit der Meldung für den Doppelklick.
Wie hast Du den den Klick-Handler aufgebaut?
Du hast hoffentlich den Default Handler aufgerufen...
-
Mein Code sieht folgender Maßen aus:
BEGIN_MESSAGE_MAP(VERZEICHNISANSICHT, CDialog) ON_NOTIFY(NM_DBLCLK, IDC_VERZEICHNISLISTE, &VERZEICHNISANSICHT::OnNMDblclkVerzeichnisliste) ON_NOTIFY(NM_CLICK, IDC_VERZEICHNISLISTE, &VERZEICHNISANSICHT::OnNMClickVerzeichnisliste) END_MESSAGE_MAP() void VERZEICHNISANSICHT::OnNMClickVerzeichnisliste(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein. AfxMessageBox("Einzelklick"); *pResult = 0; } void VERZEICHNISANSICHT::OnNMDblclickVerzeichnisliste(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein. AfxMessageBox("Doppelklick"); *pResult = 0; }Gruß Thomas
Edit by Estartu: Code Tags