C++ 如何获得窗口的边框大小?

C++ 如何获得窗口的边框大小?,c++,opengl,cursor,border,C++,Opengl,Cursor,Border,我正在画一个矩形(在OpenGL中),角点基于光标位置。我将像素位置修改为浮动位置,但我需要宽度和高度(保存在某处) 所以我做了一些测试,在一个1024x512窗口上,左上角确实是(0,0),但下角是(1007473)或接近 现在它工作正常,但如果窗口被调整大小,那么它显然将不再工作,因此我的问题是: 我怎样才能得到边框尺寸? 这样,我想我可以从窗口大小中减去它,并获得光标绘制矩形的正确位置。在windows上,您可以使用GetWindowRect和GetClientRect RECT wind

我正在画一个矩形(在OpenGL中),角点基于光标位置。我将像素位置修改为浮动位置,但我需要宽度和高度(保存在某处)

所以我做了一些测试,在一个1024x512窗口上,左上角确实是(0,0),但下角是(1007473)或接近

现在它工作正常,但如果窗口被调整大小,那么它显然将不再工作,因此我的问题是:

我怎样才能得到边框尺寸?
这样,我想我可以从窗口大小中减去它,并获得光标绘制矩形的正确位置。

在windows上,您可以使用
GetWindowRect
GetClientRect

RECT windowRect;
GetWindowRect(hwnd, &windowRect);

RECT clientRect;
GetClientRect(hwnd, &clientRect);

int borderWidth = ((windowRect.right - windowRect.left) - (clientRect.right -clientRect.left))/2;
尽管
GetClientRect
应该给出窗口的内部宽度,这应该足够了

int innerWidth = clientRect.right - clientRect.left;

在windows上,您可以使用
GetWindowRect
GetClientRect

RECT windowRect;
GetWindowRect(hwnd, &windowRect);

RECT clientRect;
GetClientRect(hwnd, &clientRect);

int borderWidth = ((windowRect.right - windowRect.left) - (clientRect.right -clientRect.left))/2;
尽管
GetClientRect
应该给出窗口的内部宽度,这应该足够了

int innerWidth = clientRect.right - clientRect.left;

您使用的是什么平台和窗口处理程序?您使用的是什么平台和窗口处理程序?太棒了!我以前见过,但解释得不好。工作得很好!好极了!我以前见过,但解释得不好。工作得很好!