Autor Beitrag
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Fr 01.08.08 10:16 
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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
   while true do
   begin
     if not GetMessage(msg, 000then
       break;
     TranslateMessage(msg);
     DispatchMessage(msg);
   end;


Und eine zugehörige Fensterprozedur sähe so aus:
ausblenden 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.