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. Zitieren
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 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.