The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 20.06.2004, 20:59 Titel: [Win32] Falsche Mauskoordinaten bei Fensteranwendungen |
|
|
Frage:
Ich habe eine Fensteranwendung geschrieben und ermittle die Mauskoordinaten über den Messagehandler. Aber die Koordinaten sind immer verschoben.
Was kann ich tun? Ich bin so verzweifelt.
Antwort:
Der Messagehandler gibt nicht die Koordinaten der Maus auf dem Bildschirm zurück, sondern die Koordinaten im Fenster. Deshalb müssen sie erst noch umgerechnet werden. Dafür gibt es zwei Funktionen, die sie mithilfe des Fensterhandles umrechnen können.
1.) ClientToScreen(Fenster -> Bildschirm)
Code: | POINT coordinates;
coordinates.x=x_coords_of_messagehandler;
coordinates.y=y_coords_of_messagehandler;
ClientToScreen(hWnd,&coordinates);
//coordinates enthält jetzt die Bildschirmkoordinaten |
2.) ScreenToClient(Bildschirm -> Fenster)
Code: | POINT coordinates;
coordinates.x=x_screencoords;
coordinates.y=y_screencoords;
ScreenToClient(hWnd,&coordinates);
//coordinates enthält jetzt die Fensterkoordinaten |
_________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|