CWnd::CalcWindowRect 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于计算窗口客户区的矩形(在不包括边框的情况下)以及窗口整体的矩形(包括边框)。

函数原型如下:
void CWnd::CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType = adjustBorder);

  •  lpClientRect:一个指向 RECT 结构的指针,用于接收计算得到的客户区矩形。这个矩形不包括窗口的边框。

  •  nAdjustType:一个可选的参数,指定计算类型。默认值是 adjustBorder,表示计算整个窗口的矩形,包括边框。你也可以使用 adjustOutside 或 adjustInside,分别表示计算整个窗口矩形(包括边框)、或仅计算客户区矩形。


这个方法通常在窗口创建时,用于计算窗口客户区的大小或者整体窗口的大小。

以下是一个简单的示例,演示如何使用 CalcWindowRect:
CWnd myWnd;
RECT rectClient;
RECT rectWindow;

// 假设有一个初始的窗口大小,用 RECT 结构表示
rectClient.left = 0;
rectClient.top = 0;
rectClient.right = 200;  // 客户区宽度
rectClient.bottom = 150; // 客户区高度

// 调用 CalcWindowRect 计算整个窗口的矩形
myWnd.CalcWindowRect(&rectClient, CWnd::adjustBorder);

// 现在 rectWindow 中存储了整个窗口的矩形

在这个示例中,CalcWindowRect 被用于计算包含边框的整个窗口矩形。rectWindow 中存储了计算得到的整个窗口的矩形。


转载请注明出处:http://www.pingtaimeng.com/article/detail/23429/MFC/CWnd