C++ Win32/MFC从客户端rect获取窗口rect

C++ Win32/MFC从客户端rect获取窗口rect,c++,windows,winapi,mfc,C++,Windows,Winapi,Mfc,我知道在某个地方有一个函数可以接受一个客户机rect,它可以将它转换为一个窗口rect。我就是找不到/记不起来了 有人知道这是什么吗 它的作用类似于: const CRect client(0, 0, 200, 200); const CRect window = ClientRectToWindowRect(client); SetWindowPos(...) 你可能在想。请记住,这是为了在创建窗口时使用-不能保证它将为现有窗口生成一组精确的窗口尺寸;为此,请使用。这就是您想要的吗 客户端屏

我知道在某个地方有一个函数可以接受一个客户机rect,它可以将它转换为一个窗口rect。我就是找不到/记不起来了

有人知道这是什么吗

它的作用类似于:

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

你可能在想。请记住,这是为了在创建窗口时使用-不能保证它将为现有窗口生成一组精确的窗口尺寸;为此,请使用。

这就是您想要的吗

客户端屏幕


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


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

控制重新定位使用:

RECT client;
::SetRect(&client, 0, 0, 200, 200);
::MapWindowPoints(hwndControl, ::GetParent(hwndControl), (POINT*)&client, 2);
::SetWindowPos(...)

这将为您提供客户端坐标中的窗口rect,因此您可以使用rect(顶部,左侧)作为偏移量

CRect rectFrame;
GetWindowRect(&rectFrame);
ScreenToClient(&rectFrame);

不,这需要客户端坐标并将其转换为屏幕坐标。这不考虑窗口边框。我也有同样的答案,直到我意识到我的错误。