| Author |
Message
|
WaldekMarek Poziom 8

Joined: 24 Feb 2006 Posts: 26 Location: Łańcut
|
#1
16 Jul 2007 10:09 Jak znaleść współrzędne okna programu |
|
|
|
Witam.
Mam mały problem. Nie wiem skąd wziąć współrzędne okna programu. Program piszę w Visual C++. Potrzebuję przestawiać kursor w różne miejsca okienka mojego programu, ale moje współrzędne muszę dodać do współrzędnych początku okna mojego programu. Wyszło masło maślane ale myślę że wiadomo o co chodzi.
Dziękuję Waldek.
|
|
| Back to top |
|
 |
Google

|
#
16 Jul 2007 10:09 |
|
|
|
|
|
| Back to top |
|
 |
Faust Poziom 13

Joined: 01 Apr 2003 Posts: 135
|
#2
16 Jul 2007 10:27 Re: Jak znaleść współrzędne okna programu |
|
|
|
Myśle, że to powinno wystarczyć:
1. BOOL ClientToScreen(HWND hWnd, LPPOINT lpPoint);
2. BOOL ScreenToClient(HWND hWnd, LPPOINT lpPoint);
hWnd - uchwyt okna.
lpPoint - strukturka z koordynatami.
Funkcje zamieniają współrzędne:
1. okna na ekranowe.
2. ekranowe na okna.
Koordynaty do zamiany podajemy w lpPoint i tam też jest wynik operacji.
|
|
| Back to top |
|
 |
Google

|
#
16 Jul 2007 10:27 |
|
|
|
|
|
| Back to top |
|
 |
Akane Poziom 18

Joined: 02 Jun 2003 Posts: 552 Location: JO90, JN49
|
#3
16 Jul 2007 14:10 Re: Jak znaleść współrzędne okna programu |
|
|
|
| Code: |
RECT rc;
GetWindowRect(hwnd, &rc); // zwraca pozycję i rozmiar okna
WINDOWPLACEMENT wpl; wpl.length = sizeof(wpl);
GetWindowPlacement(hwnd, &wpl); // jak wyżej, plus stan okna(normal/min/maximized), oraz pozycję okna w stanie min/maximized.
POINT pt;
GetCursorPos(&pt); // odczyta wsp. kursora względem lew.gór. rogu pulpitu
SetCursorPos(od_lewej, od_góry); // przesuwa kursor |
pozycja 0,0 to lewy górny róg desktopu
edit: sizeof było źle
|
|
| Back to top |
|
 |