如何获取窗口客户区域相对于屏幕的坐标?
我考虑使用GetClientRect
和ClientToScreen
。另外,在浏览器窗口中,什么是ClientRect
? 它只包括显示其中的HTML
文档的矩形,还是包括可能缩小HTML
文档尺寸的浏览器栏和弹出菜单?
我已经尝试了这个:
HWND hWnd;
RECT rc;
if (GetClientRect(hWnd, &rc)) // get client coords
{
MapWindowPoints(hWnd, NULL, reinterpret_cast<POINT*>(&rc), 2); // converts rect rc points
return rc.top;
}
但是不幸的是,浏览器客户端矩形包括所有弹出式浏览器菜单和工具栏,因此无法用来检测浏览器HTML文档空间的准确坐标。如果有人有建议如何实现,我们将非常乐意尝试。
MapWindowPoints
。 - Raymond Chenrc
周围的堆栈已经损坏,看起来你是对的,现在将尝试使用MapWindowPoints
。 - Max YariClientToScreen
函数适用于一个POINT
(x,y),而矩形由两个 POINTs (左上角,右下角) 组成。但是建议使用 Raymond Chen 提出的MapWindowPoints
函数。 - Jonathan Potter