CWnd::OnWndMsg 是 MFC(Microsoft Foundation Classes)中 CWnd 类的一个受保护方法,用于处理特定的 Windows 消息。

该方法允许你直接处理 Windows 消息,而不通过消息映射。通过覆盖 OnWndMsg 方法,你可以在派生类中处理任何未被 MFC 默认处理的 Windows 消息。以下是一个简单的示例:
class CMyWnd : public CWnd
{
    // ...

protected:
    afx_msg LRESULT OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam);
    DECLARE_MESSAGE_MAP()
};

BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
    // ...
END_MESSAGE_MAP()

LRESULT CMyWnd::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam)
{
    // 在这里添加处理特定 Windows 消息的代码
    // 使用传递进来的参数 message, wParam, 和 lParam 进行相应的操作
    // ...

    // 调用基类的处理以确保正常的消息处理行为
    return CWnd::OnWndMsg(message, wParam, lParam);
}

在上述示例中,CMyWnd 是你的派生类,通过覆盖 OnWndMsg 方法,你可以直接处理特定的 Windows 消息。不过,请谨慎使用这种方式,通常情况下,使用消息映射机制更为方便和可读。

确保在消息映射中没有设置对应的处理函数(例如 ON_WM_XXXX() 宏),以便 OnWndMsg 方法能够捕获相应的消息。


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