Teamviewer
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
    
Bücher-Shop mit Amazon (Buchkategorien):  C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : COM & DCOM : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Projektmanagement : Software-Testing
C/C++ Forum :: MFC (Visual C++) ::  Veständnisfrage zum CListCtrl und WM_LBUTTON_UP Nachricht     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Michael S.
Unregistrierter




Beitrag Michael S. Unregistrierter 09:51:17 09.02.2010   Titel:   Veständnisfrage zum CListCtrl und WM_LBUTTON_UP Nachricht            Zitieren

Hallo,
ich habe feststellen müssen dass der Message Handler in meiner abegeleteten Klasse für die Nachricht WM_LBUTTON_UP nicht aufgerufen wird.
Jetzt habe ich gemerkt dass die NOTIFY Message NM_CLICK genaua dem WM_LBUTTON_UP entspricht, warum auch immer.
Aber was ich nicht verstehe ist:
Spy Tool zeigt dass Messages WM_LBUTTON_DOWN und WM_LBUTTON_UP bei einem Mausclick ausgelöst werden. Wenn aber bei PreTraslateMessage diese Nachrichten abgefangen werden dann fehlt wieder die WM_LBUTTON_UP.
Ist es nicht so dass Spy den Inhalt der MessageQueue zeigt? Dann aber müsste doch der PreTranslateMassege diese Nachricht empfangen da das dierekt nach dem Ausbau aufgerufen wird bevor diese an die WndProc weitergegeben wird? Wo verliert sich die Message?
Martin Richter
Moderator

Benutzerprofil
Anmeldungsdatum: 18.04.2006
Beiträge: 10169
Beitrag Martin Richter Moderator 10:32:37 09.02.2010   Titel:              Zitieren

1. Wenn Du in PreTRanslateMessage WM_LBUTTONDOWN/UP behandelst nd TRUE zurück gibst, dann wird die Nachricht nicht an das Fenster weitergereicht!

2. Hast Du eine DLL hier?

PreTranslateMessage wird nur dann für Nachrichten aufgerufen wenn die Message-Loop auch auch aus der MFC ausgeführt wird.

http://blog.m-ri.de/index.php/2008/07/04/mfc-fenster-in-anderen-applikationen-verwenden/
http://blog.m-ri.de/index.php/2007/08/18/wann-message-reflection-nicht-funktioniert/

_________________
Martin Richter (MVP für C++) WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written program is its own hell!" The Tao of Programming
Michael S.
Unregistrierter




Beitrag Michael S. Unregistrierter 10:50:14 09.02.2010   Titel:              Zitieren

Ich glaube wir verstehen uns falsch.

Da der Message Hnadler in meine CMyListCtrl Klasse nicht augerufen werden kann (anscheined unterdrückt CListCtrl dieses) kam ich auf die Idee die Nachricht WM_LBUTTON_UP in PreTraslateMassege abzufangen. Das Ergebnis war jedoch gleich d.h. die Nachricht kam nicht, war aber mit Spy zu sehen.
Dieses gilt aber nicht für WM_LBUTTON_DOWN Nachricht.

Normale MFC Anwednung.
Martin Richter
Moderator

Benutzerprofil
Anmeldungsdatum: 18.04.2006
Beiträge: 10169
Beitrag Martin Richter Moderator 11:30:00 09.02.2010   Titel:              Zitieren

Deine Schreibweise stimmt auch nicht, es heißt WM_LBUTTONDOWN WM_LBUTTONUP ;)

Kann ich nicht bestätigen. Meine CListCtrls bekommen die Nachrichten.
Läuft bei Dir ein Hook, der die Nachricht frisst...

Bist Du sicher, dass Du einen Eintrag in der Message Map hast? Aber OK, dann müsste auch PreTranslateMessage anspringen.

_________________
Martin Richter (MVP für C++) WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written program is its own hell!" The Tao of Programming
Michael S.
Unregistrierter




Beitrag Michael S. Unregistrierter 13:02:15 09.02.2010   Titel:              Zitieren

:-)
Ich habe etwas vergessen. Es handelt sich um selbsgezeichneten CListCtrl.
Ja die Einträge sind durch Wizard generiert aber nach Überprüffung auch drin (d.h. in der MsgMap als auch die dazugehörige Fkts).
Noch komischer ist es dass nach einem Doppelcklick die MouseUp Message erscheint.
Ein Doppelcklick laut Spy:
Down
Up
DblClick
Up

Und hier löst nur der 2. Up den Aufruf.
Daraufhin habe ich probeweise NM_Click eingefügt und diese enspricht auf einmal dem MouseUp Ereignis.

Deshalb bin ich etwas verwirrt. :eek:
C/C++ Forum :: MFC (Visual C++) ::  Veständnisfrage zum CListCtrl und WM_LBUTTON_UP Nachricht   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.