屏幕坐标系和窗口客户区坐标系最明显的区别

您所在的位置:网站首页 计算机屏幕坐标系的坐标单位是 屏幕坐标系和窗口客户区坐标系最明显的区别

屏幕坐标系和窗口客户区坐标系最明显的区别

2024-02-15 07:03| 来源: 网络整理| 查看: 265

      1、ClientToScreen 函数:

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

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

  参数:

  hWnd :用户区域用于转换的窗口句柄。 注:第二个参数点的坐标是相对于第一个参数(窗口句柄)的窗口的坐标,将此点转换为屏幕坐标,实际上是在此点窗口坐标(相对于窗口左上角的坐标)的基础上加上此窗口左上角坐标相对于屏幕左上角的坐标值。

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

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

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

      CWnd::ClientToScreen(LPPOINT lpPoint)  (ClientToScreen(LPRECT lpRect))实现的是同样的效果,只不过是窗口句柄缺省为调用此函数的窗口。

 

      2、ScreenToClient 函数:

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

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

  参数:

  hWnd:指向窗口的句柄,此窗口的用户空间将被用来转换。 注:将此点相对于屏幕左上角的坐标值转换成相对于此窗口左上角的坐标值。

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

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

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

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

 

CWnd::GetClientRect(CRect rect)  函数:

此函数得到的区域是相对于调用此函数的窗口指针所指向的窗口的客户区域,坐标点是相对于此窗口而言的。例如:在对话框中,如果是一个子控件调用此函数,那么它得到的rect值左上角的点必定为(0,0),长宽必定与此控件的客户区长宽想等。如果是对话框自身调用此函数,Rect是基类对话框客户区域坐标,并且rect左上角的点也必定是(0,0),长宽与此对话框的客户区长宽相等。

注:API函数::GetClientRect(HWND hwnd,LPRECT lprect)实现同样的效果

 

CWnd::GetWindowRect(rect) 函数:

此函数得到的区域坐标是相对于屏幕左上角而言,无论是对话框本身还是它的子控件调用此函数得到的坐标都是相对于屏幕而言。并且如果是对话框那么它得到的是对话框整个窗口的区域坐标。

注:API函数::GetWindowRect(HWND hwnd,LPRECT lprect)实现同样的效果



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3