您的位置:首页 > 其它

ClientToScreen 和 ScreenToClient

2010-10-16 09:47 295 查看
函数原型:BOOL ClientToScreen(HWND hWnd,LPPOINT lpPoint);

参数:

:用户区域用于转换的窗口句柄。

:指向一个含有要转换的用户坐标的结构的指针,如果函数调用成功,新屏幕坐标复制到此结构。

返回值:如果函数调用成功,返回值为非零值,否则为零。

注释:函数用屏幕坐标取代POINT结构中的用户坐标,屏幕坐标与屏幕左上角相关联。

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。

函数功能:该函数把屏幕上指定点的屏幕坐标转换成用户坐标。

函数原型:BOOL ScreenToClient(HWND hWnd, LPPOINT lpPoint);

参数:

hWnd:指向窗口的句柄,此窗口的用户空间将被用来转换。

lpPoint:指向POINT结构指针,该结构含有要转换的屏幕坐标。

返回值:如果函数调用成功,返回值为非零值,否则为零。

Windows NT:若想获得更多错误信息,请调用GetLastError函数。

注释:该函数应用hWnd参数标识的窗口和POINT结构给定的屏幕坐标来计算用户坐标,然后以用户坐标来替代屏幕坐,新坐标是相对于指定窗口的领域的左上角。

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。

例如:想要得到文本框在对话框中左上角的坐标(即文本框左上角到对话框左上角的距离)

CRect rectEdit,rectDlg;
CWnd *pWnd=GetDlgItem(IDC_EDIT1);//获得文本框指针
pWnd->GetClientRect(rectEdit); //获得文本框矩形,左上角坐标(0,0)
pWnd->ClientToScreen(rectEdit); //转换到屏幕坐标,左上角坐标为文本框在屏幕的坐标
GetClientRect(rectDlg);//获得对话框矩形,左上角坐标(0,0)
ClientToScreen(rectDlg);//转换到屏幕坐标,左上角坐标为对话框在屏幕的坐标

int x=rectEdit.left-rectDlg.left;//他们的差即为文本框在对话框中的X坐标
int y=rectEdit.top-rectDlg.top;//他们的差即为文本框在对话框中的Y坐标
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: