在 MFC(Microsoft Foundation Classes)中,CWnd::ScreenToClient 是一个公共方法,用于将屏幕坐标转换为客户区坐标。

函数原型如下:
void ScreenToClient(LPPOINT lpPoint) const;
void ScreenToClient(LPRECT lpRect) const;

参数解释:
  •  lpPoint:指向 POINT 结构体的指针,表示要转换的屏幕坐标。

  •  lpRect:指向 RECT 结构体的指针,表示要转换的屏幕坐标范围。


函数功能:
ScreenToClient 用于将屏幕坐标转换为相对于窗口客户区域的坐标。它是通过使用窗口的设备上下文(Device Context,简称 DC)进行转换的。

使用示例:
CWnd* pWnd = GetDlgItem(IDC_YOUR_DIALOG_ITEM);
POINT screenPoint;
screenPoint.x = 100;
screenPoint.y = 150;

// 将屏幕坐标转换为客户区坐标
pWnd->ScreenToClient(&screenPoint);

// 现在 screenPoint 包含相对于客户区的坐标
int clientX = screenPoint.x;
int clientY = screenPoint.y;

这样,screenPoint 中的坐标就会被转换为相对于窗口客户区的坐标。同样的原理也适用于 LPRECT 类型的参数。


转载请注明出处:http://www.pingtaimeng.com/article/detail/23376/MFC/CWnd