CWnd::OnNcCalcSize 是 MFC(Microsoft Foundation Classes)库中 CWnd 类的一个受保护虚拟方法,用于处理非客户区(Non-Client Area)尺寸计算事件。这个方法在窗口的非客户区尺寸需要被计算时被调用。

以下是一个简单的示例:
// MyWnd.h

class MyWnd : public CWnd
{
   // 声明消息映射
   afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp);
   DECLARE_MESSAGE_MAP()
};

// MyWnd.cpp

BEGIN_MESSAGE_MAP(MyWnd, CWnd)
   ON_WM_NCCALCSIZE()
END_MESSAGE_MAP()

// 实现消息处理函数
void MyWnd::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp)
{
   // 在这里处理非客户区尺寸计算事件
   // bCalcValidRects 表示是否计算有效矩形,lpncsp 包含计算尺寸的参数
   // 可以添加你的自定义代码

   CWnd::OnNcCalcSize(bCalcValidRects, lpncsp);
}

在这个示例中,MyWnd 类继承自 CWnd,并声明了 OnNcCalcSize 方法。通过 ON_WM_NCCALCSIZE 宏,将 WM_NCCALCSIZE 消息映射到相应的处理函数。当窗口的非客户区尺寸需要被计算时,OnNcCalcSize 方法会被调用。

你可以在 OnNcCalcSize 方法中添加自定义代码,以实现在非客户区尺寸计算事件中的一些特定操作。


转载请注明出处:http://www.zyzy.cn/article/detail/23644/MFC/CWnd