GetMessage Nachrichten filtern
-
Ich möchte, dass an die WndProc() meines Hauptfenster keinerlei Maus-Messages weitergeleitet werden.
MitGetMessage(&msg, NULL, WM_MOUSEFIRST, WM_MOUSELAST)könnte das vielleicht funktionieren.
'Vielleicht' deshalb, weil ich befürchte, dass die Maus-Nachrichten dann zwar von GetMessage ignoriert werden, aber womöglich stapeln sich die Maus-Nachrichten dann trotzdem in der systemeigenen MessageQueue.
Besteht Windows darauf, dass sich mein Fenster um Maus-Nachrichten kümmern MUSS, oder werden die Nachrichten in dem obigen Fall nicht nur von GetMessage() ignoriert, sondern zusätzlich auch noch als 'verarbeitet' von der Message-Queue genommen (?)
Danke, wenn sich jemand genauer mit GetMessage() auskennt!
-
Also erstmal ist der Filter genau das Gegenteil von dem was du annimmst, denn der GetMessage Aufruf wie du ihn zeigst filtert die Mouse-Messages nicht aus, sondern gibt dir nur Mouse-Messages zurück.
Davon abgesehen ist das IMO nicht der ideale Weg.
Du könntest aber einfach die WindowProc des Fensters "verbiegen", und in deiner eigenen WindowProc einfach alle Mouse-Messages "schlucken".
(EDIT: den Rest leitest du dann an die alte WindowProc weiter, nur falls das nicht klar sein sollte /EDIT)Tip: das macht man mit SetWindowLongPtr(GWLP_WNDPROC), und es nennt sich "subclassing"
-
@hustbaer
warum muß er sein Hauptfenster subclassen, dat Ding hat doch bereits einen eigenen Eventhandler? Er muß nur dort alle relevanten Mousemessages nach seinen Vorstellungen abarbeiten.
-
Jo stimmt.
Irgendwie kam mir das zu einfach vor, soll heissen: ich dachte mir, vielleicht hat er aus einem bestimmten Grund keine Kontrolle über die WindowProc.
-
Könnte es sein, er sucht EnableWindow(...,FALSE)
nur so ein Gedanke...