Entwickler-Ecke
Windows API - Verständnisfrage zu GetMessage
Flamefire - Fr 01.08.08 10:16
Titel: Verständnisfrage zu GetMessage
Kann mir bitte mal jemand genau erklären wie das funktioniert?
Ich dachte bisher (von der Logik her):
Aufruf GetMessage liefert Message, die dan ausgewertet werden kann.
Aber dann gibts ja noch TranslateMessage und DispatchMessage
Was machen die genau? Und wenn möglich mit genauerer Erklräung als MSDN 'Verteilt eine Nachricht'
Danke
Flamefire
Delete - Fr 01.08.08 16:19
GetMessage ruft die Nachrichten aus der Nachrichtenschlange ab Mit Hilfe von TranslateMessage und DispatchMessage werden die Nachrichten an die Fensterprozedur des Fensters weitergegeben. Wobei TranslateMessage nur benötigt wird, wenn das Fenster Tastatureingaben entgegennimmt, diese werden dann von TranslateMessage entsprechend übersetzt.
Eine Nachrichtenschleife für ein Fenster sähe dann zum Beispiel so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| while true do begin if not GetMessage(msg, 0, 0, 0) then break; TranslateMessage(msg); DispatchMessage(msg); end; |
Und eine zugehörige Fensterprozedur sähe so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| function WndProc(hWnd: HWND; uMsg: UINT; wParam: wParam; lParam: LParam): lresult; stdcall; begin Result := 0; case uMsg of WM_CREATE: begin end else Result := DefWindowProc(hWnd, uMsg, wParam, lParam); end; end; |
Das ganze kannst du hier
http://www.michael-puff.de/Artikel/ICQLogWin32API.shtml noch mal genauer nachlesen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!