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坐标
参数:
:用户区域用于转换的窗口句柄。
:指向一个含有要转换的用户坐标的结构的指针,如果函数调用成功,新屏幕坐标复制到此结构。
返回值:如果函数调用成功,返回值为非零值,否则为零。
注释:函数用屏幕坐标取代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坐标
相关文章推荐
- ScreenToClient
- ClientToScreen( )和ScreenToClient( )
- ScreenToClient
- GetWindowRect,GetClientRect,ClientToScreen 和ScreenToClient
- ScreenToClient
- Popup&ScreenToClient&ClientToScreen
- ScreenToClient 出现负数
- GetWindowRect(), GetClientRect(), ScreenToClient()
- VC ScreenToClient与ClientToScreen
- 判断鼠标是否在某个控件范围内 ScreenToClient PtInRect
- GetWindowRect, GetClientRect, ScreenToClient的区别
- GetWindowRect ScreenToClient GetClientRect
- 利用::ClientToScreen将RECT转换为屏幕坐标
- ClientToScreen 和ScreenToClient 用法
- VC++中的GetWindowRect,GetClientRect,ScreenToClient , ClientToScreen();
- ScreenToClient And ClientToScreen
- ClientToScreen 和 ScreenToClient
- GetWindowRect,GetClientRect,ScreenToClient MoveWindow SetWindowPos 用法说明
- ClientToScreen 和ScreenToClient
- VC:弹出式菜单(LoadMenu()、GetSubMenu()、ClientToScreen()、TackPopupMenu())