调用OnNcCalcSize代码
时间: 2023-09-20 07:03:05 浏览: 38
以下是一个重载了 OnNcCalcSize 函数的 CWnd 派生类的示例代码:
```
class CMyWnd : public CWnd
{
public:
virtual void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp)
{
// 调用基类实现
CWnd::OnNcCalcSize(bCalcValidRects, lpncsp);
// 在此添加自定义的非客户区大小计算代码
// ...
// 如果需要修改非客户区矩形的大小,可以在此处修改
// lpncsp->rgrc[0] = ...
// 最后,设置 bCalcValidRects 为 FALSE,表示已经自己计算了非客户区大小
bCalcValidRects = FALSE;
}
// 消息映射表中添加对 WM_NCCALCSIZE 消息的处理
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
ON_WM_NCCALCSIZE()
END_MESSAGE_MAP()
```
上述代码中,重载的 OnNcCalcSize 函数中可以添加自定义的非客户区大小计算代码,如果需要修改非客户区矩形的大小,可以在此处修改 NCCALCSIZE_PARAMS 结构体中的 rgrc[0] 成员。最后,将 bCalcValidRects 设置为 FALSE,表示已经自己计算了非客户区大小。在消息映射表中添加对 WM_NCCALCSIZE 消息的处理,以调用 OnNcCalcSize 函数。