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
www.michael-puff.de/...ICQLogWin32API.shtml noch mal genauer nachlesen.