这样子的话 每当鼠标移动的时候 鼠标的坐标就会被更新到
POINT类型的变量pt里面
之后就是框框的坐标了
因为框框的坐标直接获取的话是屏幕的坐标
而不是窗口内的坐标
所以为了与鼠标的坐标参考系一致
需要用到函数ScreenToClient()
为了方便 我创建了一个新的函数
用来一次性的处理框框坐标
代码如下:
void NewScreenToClient(HWND hwndPar, HWND hwndChild, RECT &rect)
{
POINT pt;
int ixPos, iyPos;
GetWindowRect(hwndChild, &rect);
pt.x = rect.left;
pt.y = rect.top;
ScreenToClient(hwndPar, &pt);
rect.left = pt.x;
rect.top = pt.y;
pt.x = rect.right;
pt.y = rect.bottom;
ScreenToClient(hwndPar, &pt);
rect.right = pt.x;
rect.bottom = pt.y;
}
这样就能够一次性的把框框的坐标格式化完成
POINT类型的变量pt里面
之后就是框框的坐标了
因为框框的坐标直接获取的话是屏幕的坐标
而不是窗口内的坐标
所以为了与鼠标的坐标参考系一致
需要用到函数ScreenToClient()
为了方便 我创建了一个新的函数
用来一次性的处理框框坐标
代码如下:
void NewScreenToClient(HWND hwndPar, HWND hwndChild, RECT &rect)
{
POINT pt;
int ixPos, iyPos;
GetWindowRect(hwndChild, &rect);
pt.x = rect.left;
pt.y = rect.top;
ScreenToClient(hwndPar, &pt);
rect.left = pt.x;
rect.top = pt.y;
pt.x = rect.right;
pt.y = rect.bottom;
ScreenToClient(hwndPar, &pt);
rect.right = pt.x;
rect.bottom = pt.y;
}
这样就能够一次性的把框框的坐标格式化完成