在 MFC 中,CWnd::OnPowerBroadcast 是一个受保护的虚拟方法,用于处理系统电源状态的变化。当系统电源状态发生变化时,系统会发送 WM_POWERBROADCAST 消息,而 OnPowerBroadcast 方法通常在接收到这个消息时被调用。

以下是一个简单的示例,演示如何在自定义的窗口类中重写 OnPowerBroadcast 方法:
class CMyWnd : public CWnd
{
public:
    // 构造函数和其他成员函数的声明

protected:
    // 重写 OnPowerBroadcast 方法
    afx_msg BOOL OnPowerBroadcast(DWORD dwPowerEvent, DWORD_PTR dwEventData)
    {
        // 在这里进行系统电源状态变化的处理逻辑
        // dwPowerEvent 是电源事件的类型
        // dwEventData 包含附加的信息,具体内容取决于电源事件的类型

        switch (dwPowerEvent)
        {
        case PBT_APMQUERYSUSPEND:
            // 处理系统即将进入暂停状态的事件
            // 可以在这里执行必要的操作,例如保存数据
            break;
        case PBT_APMRESUMESUSPEND:
            // 处理系统从暂停状态恢复的事件
            // 可以在这里执行必要的操作,例如恢复数据
            break;
        // 其他电源事件的处理
        default:
            break;
        }

        // 返回 TRUE 表示已处理电源事件,FALSE 表示未处理
        return TRUE;
    }

    // 其他成员变量和函数的声明

    DECLARE_MESSAGE_MAP()
};

在这个例子中,CMyWnd 是一个自定义的窗口类,它继承自 CWnd。我们通过 DECLARE_MESSAGE_MAP() 宏声明了消息映射表,并在实现文件中使用 BEGIN_MESSAGE_MAP 和 END_MESSAGE_MAP 宏进行消息映射的定义。

OnPowerBroadcast 方法用于处理系统电源状态的变化,可以根据实际需求在这个方法中执行相应的逻辑。需要注意,OnPowerBroadcast 方法的声明中使用了 afx_msg 宏。


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