2

我知道某处有一个函数可以接受客户端矩形,它会为您将其转换为窗口矩形。我只是找不到/记得它!

有谁知道它是什么?

它会做类似的事情:

const CRect client(0, 0, 200, 200);
const CRect window = ClientRectToWindowRect(client);
SetWindowPos(...)
4

5 回答 5

5

你大概在想AdjustWindowRectEx()。请记住,这是在创建窗口时使用的 - 不能保证它会为现有窗口生成一组准确的窗口尺寸;为此,使用GetWindowRect().

于 2008-09-26T15:51:39.240 回答
0

这是你想要的?

客户端到屏幕

http://msdn.microsoft.com/en-us/library/ms532670(VS.85).aspx

于 2008-09-26T15:52:12.610 回答
0

如果要将客户端坐标映射到窗口坐标,请使用ClientToWindow API。

如果要将客户端坐标映射到屏幕坐标,请使用ClientToScreen API。

于 2008-09-29T00:41:32.680 回答
0

对于控制重新定位使用:

RECT client;
::SetRect(&client, 0, 0, 200, 200);
::MapWindowPoints(hwndControl, ::GetParent(hwndControl), (POINT*)&client, 2);
::SetWindowPos(...)
于 2014-01-08T19:37:10.443 回答
0

这将为您提供客户端坐标中的窗口矩形,因此您可以使用 rect(top,left) 作为偏移量

CRect rectFrame;
GetWindowRect(&rectFrame);
ScreenToClient(&rectFrame);
于 2021-04-01T10:02:29.847 回答