坐标的相对转换ClientToScreen与ScreenToClient
2017-12-13 08:42
776 查看
假如一个有一个TEdit的实例edt_Position,edt_Position所在容器有好几层,所在的窗体为frmMain。现要弹出一个FORM,FORM的容器为frmMain,弹出的位置在edt_Position的下面,并且左边对齐,如何做呢?
首先将edt_Position的坐标转换为屏蔽坐标,再将此坐标加上偏移量再转换为在frmMain的坐标即可。
var
LScreenPoint, LClientPoint :TPoint;
begin
LScreenPoint.X := 0;
LScreenPoint.Y := 0;
Windows.ClientToScreen(edt_Position.Handle, LScreenPoint);
LScreenPoint.Y := LScreenPoint.Y + TEdit(Sender).Height;
LClientPoint :=frmMain.ScreenToClient(LScreenPoint);
FORM.Left := LClientPoint.X ;
FORM.Top := LClientPoint.Y;
FORM,Show();
end;
注:函数 ClientToScreen,控件的方法与API函数同名使用,造成在调用时delphi优先调用控件的ClientToScreen方法。如果只想调用API函数,那么可以用 windows.ClientToScreen。
首先将edt_Position的坐标转换为屏蔽坐标,再将此坐标加上偏移量再转换为在frmMain的坐标即可。
var
LScreenPoint, LClientPoint :TPoint;
begin
LScreenPoint.X := 0;
LScreenPoint.Y := 0;
Windows.ClientToScreen(edt_Position.Handle, LScreenPoint);
LScreenPoint.Y := LScreenPoint.Y + TEdit(Sender).Height;
LClientPoint :=frmMain.ScreenToClient(LScreenPoint);
FORM.Left := LClientPoint.X ;
FORM.Top := LClientPoint.Y;
FORM,Show();
end;
注:函数 ClientToScreen,控件的方法与API函数同名使用,造成在调用时delphi优先调用控件的ClientToScreen方法。如果只想调用API函数,那么可以用 windows.ClientToScreen。
相关文章推荐
- 坐标的相对转换ClientToScreen与ScreenToClient
- MFC的坐标转换GetClientRect/GetWindowRect/ClientToScreen/GetCursorPos/ScreenToClient
- 利用::ClientToScreen将RECT转换为屏幕坐标
- ClientToScreen这个函数的功能:该函数将指定点,或者矩形的用户坐标转换成屏幕坐标。
- MFC的坐标转换GetClientRect/GetWindowRect/ClientToScreen/GetCursorPos/ScreenToClient
- VC:客户坐标(client coordinates)和屏幕坐标(screen coordinates)的转换
- ArcGIS API for javascript(4.0)开发笔记 —— view.toScreen 转换坐标
- Screen 与Client坐标转换
- ScreenToClient 与 CMainFrame非客户区坐标计算
- 坐标讨论:LPTODP, DPTOLP, ScreenToClient ,ClientToScreen .
- ScreenToClient 与 CMainFrame非客户区坐标计算
- 当摄像机被墙挡住后,墙消失,相反则出现(三维坐标到二维坐标的转换实例Camera.main.WorldToScreenPoint)
- VC:客户坐标(client coordinates)和屏幕坐标(screen coordinates)的转换
- 坐标的先对转化clienttoscreen与screentosclient
- GetClientRect,ClientToScreen,ClipCursor
- ClientToScreen 和ScreenToClient
- Unity WorldToScreenPoint坐标变换
- GetClientRect/GetWindowRect/ScreenToClient/ClientToWindow
- appium for python client scroll to view(not in current screen)
- 页面元素坐标和偏移(clientX/pageX/screenX/layerX/offsetWidth/scrollWidth/clientWidth等)相关整理