在 MFC(Microsoft Foundation Classes)中,CControlBar 类确实有一个名为 OnUpdateCmdUI 的公共方法。以下是该方法的声明:
virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler);

这个方法在用户界面 (UI) 更新时被调用,用于通知控制条进行更新,以便反映当前的应用程序状态。

  •  pTarget 参数是指向帧窗口对象的指针。

  •  bDisableIfNoHandler 参数是一个布尔值,指示在没有处理程序的情况下是否应禁用相关的 UI 元素。


你通常需要在派生的 CControlBar 类中重写 OnUpdateCmdUI 方法,以便执行与控制条相关的更新逻辑。

以下是一个示例:
class CMyControlBar : public CControlBar
{
public:
    // ...

    virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHandler)
    {
        // 执行控制条状态的更新逻辑
        // ...

        // 调用基类的实现,以确保执行基本的更新逻辑
        CControlBar::OnUpdateCmdUI(pTarget, bDisableIfNoHandler);
    }

    // ...
};

在派生类的 OnUpdateCmdUI 方法中,你可以根据需要添加自定义的更新逻辑。通常,这个方法用于在 UI 更新期间设置控制条的状态,以便反映当前的应用程序状态。




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