CWnd::OnNcCreate 是 MFC(Microsoft Foundation Classes)中的一个受保护方法,用于处理窗口的非客户区创建消息(WM_NCCREATE)。在 MFC 中,CWnd 类提供了一系列用于处理窗口消息的成员函数,包括处理窗口创建和消息处理等。

OnNcCreate 方法的主要作用是在窗口的非客户区(Non-Client Area)即窗口边框、标题栏等创建时进行处理。当窗口被创建时,系统会发送 WM_NCCREATE 消息,这时 OnNcCreate 方法会被调用。

通常,开发者可以在 OnNcCreate 中进行一些自定义的初始化工作,例如设置窗口风格、修改窗口的属性等。由于这是一个受保护的方法,只能在派生类内部调用,不能直接从外部调用。

以下是一个简单的例子,演示了如何在一个派生自 CWnd 的类中重写 OnNcCreate 方法:
class CMyWnd : public CWnd
{
public:
    virtual BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct)
    {
        // 在这里进行窗口的非客户区创建处理
        // 可以进行一些初始化工作

        // 调用基类的 OnNcCreate,以确保执行基类的处理
        if (!CWnd::OnNcCreate(lpCreateStruct))
            return FALSE;

        // 这里可以添加自己的处理代码

        return TRUE;
    }
};

在这个例子中,CMyWnd 是一个自定义的窗口类,通过重写 OnNcCreate 方法,可以在窗口创建时执行一些额外的初始化工作。


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