|
|
Преобразует экранные координаты указанной точки в оконные координаты указанного окна.
Синтаксис
function ScreenToClient(
| hWnd, | Point
| ): Number;
|
Параметры
|
Параметр
| Тип
| Описание
|
hWnd
| Number
| дескриптор окна
|
Point
| TPoint
| экранные/оконные координаты точки
|
|
Возвращаемое значение
true в случае успеха или false в противном случае.
Оконные координаты точки возвращаются в параметре Point, замещая собой экранные координаты.
var tab=15; var tx1="Экранные\nкоординаты мыши: "; var tx2="Оконные\nкоординаты мыши: ";
// Главная форма frm=new TForm(); frm.Caption="JS+ - функция WinAPI ScreenToClient"; frm.Width =450; frm.Height=300; frm.WindowProc=frm_WndProc;
// Строка состояния stb=new TStatusBar(frm); stb.SimpleText=" Перемещайте форму и мышь в пределах формы"
// Текстовая метка для экранных координат lb1=new TLabel(frm); lb1.Caption=tx1; lb1.Left=tab; lb1.Top =tab;
// Текстовая метка для оконных координат lb2=new TLabel(frm); lb2.Caption=tx2; lb2.Left=tab; lb2.Top =lb1.Top+lb1.Height+tab;
frm.ShowModal();
// Оконная процедура формы function frm_WndProc(Sender,Msg,wParam,lParam) { var hWnd=Sender.Handle; var pnt;
switch (Msg) { case WM_MOUSEMOVE:// Перемещение мыши в окне формы pnt=Point(lParam.loWord(),lParam.hiWord()); if (ClientToScreen(frm.Handle,pnt)) out_Coords(pnt.x,pnt.y); break;
case WM_DESTROY : SetWindowLong(hWnd,GWL_WNDPROC,Sender.OldWndProc); }
return CallWindowProc(Sender.OldWndProc,hWnd,Msg,wParam,lParam); }
function out_Coords(x,y) { var pnt;
lb1.Caption=tx1+x+", "+y;
pnt=Point(x,y); if (ScreenToClient(frm.Handle,pnt)) { lb2.Caption=tx2+pnt.x+", "+pnt.y; return; }
stb.SimpleText="Ошибка при преобразовании координат"; }
Совместимость
Windows API
|
JS+ | Руководство пользователя
|
|
|
|
|
|