maddin Geschrieben 18. Juli 2001 Geschrieben 18. Juli 2001 moin mfc ler, ich hoffe ihr könnt mir ein wenig weiterhelfen. ich bin auf der suche nach einer möglichkeit, die ankommenden nachrichten ohne den kram von wegen DECLARE_MESSAGE_MAP, BEGIN_MESSAGE_MAP, END_MESSAGE_MAP auszuwerten. weiß jemand von euch was ich für eine funktion bemühen kann um mir die nachrichten selber von der nachrichtenschlagen zu holen. oder irgendeinen anderen weg. wäre echt super.
whizzle Geschrieben 18. Juli 2001 Geschrieben 18. Juli 2001 Moijen! So sollte es funktionieren (ohne Gewähr, hab's nicht probiert...): Zuerst eine Variable deklarieren, die die "alte" Fensterprozedur aufnimmt, und diese mit Hilfe des Fensterhandles des Hauptfensters initialisieren: HWND hWndMain = AfxGetMainWnd()->GetSaveHwnd(); WNDPROC OldProc = GetWindowLong(hWndMain, GWL_WNDPROC); Dann eine eigene Fenster-Funktion deklarieren/definieren, die die Nachrichten (zuerst) behandeln soll: LRESULT CALLBACK MyMsgHandler(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam) { switch(nMsg){ case WM_CREATE: ... break; // auch "return 0;" ist möglich, dann dürfte die // Nachricht allerdings von Windows nicht weiter // bearbeitet werden case... case... }; return CallWindowProc(OldProc, hWnd, nMsg, wParam, lParam); } Diese eigene Fenster-Prozedur dem Hauptfenster zuordnen: SetWindowLong(hWndMain, GWL_WNDPROC, MyMsgHandler); Wie gesagt, in MFC-Programmen hab ich's noch nicht probiert. Bis denn
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden