CWnd::WindowProc 是 MFC(Microsoft Foundation Classes)中的一个受保护方法,用于处理窗口消息。在 MFC 中,CWnd 类是窗口类的基类,WindowProc 方法用于处理窗口的消息。

WindowProc 方法的原型如下:
LRESULT CWnd::WindowProc(UINT message, WPARAM wParam, LPARAM lParam);

在派生自 CWnd 的类中,你可以重写这个方法来处理特定的窗口消息。当窗口接收到消息时,MFC 将调用 WindowProc 方法,并将消息的类型、wParam、lParam 作为参数传递给该方法。你可以根据需要进行处理,并返回处理结果。

以下是一个简单的示例,演示如何在派生类中重写 WindowProc 方法:
class CMyWnd : public CWnd
{
public:
    // 构造函数等

protected:
    // 重写 WindowProc 方法
    virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
    {
        // 在这里处理特定的窗口消息
        switch (message)
        {
        case WM_LBUTTONDOWN:
            // 处理鼠标左键按下消息
            // 可以在这里添加你的逻辑
            break;

        // 其他消息处理...

        default:
            // 如果不处理的消息,交给基类处理
            return CWnd::WindowProc(message, wParam, lParam);
        }

        // 如果处理了消息,返回相应的结果
        return 0;
    }
};

在这个示例中,CMyWnd 类继承自 CWnd,并重写了 WindowProc 方法来处理特定的窗口消息,比如鼠标左键按下消息(WM_LBUTTONDOWN)。在处理完特定消息后,如果不处理的消息,可以调用基类的 WindowProc 方法,将消息交给基类处理。


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