在 MFC(Microsoft Foundation Classes)的 CHtmlView 类中,CHtmlView::OnCommandStateChange 不是一个公共方法,而是一个虚拟函数,用于处理在导航完成时,相关命令状态的改变事件。

这个函数通常被重写,以便应用程序能够响应命令状态的变化,例如在工具栏或菜单项上更新相应的按钮状态。以下是一个简单的示例:
class CMyHtmlView : public CHtmlView
{
public:
    DECLARE_DYNCREATE(CMyHtmlView)

    // ...

    virtual void OnCommandStateChange(long nCommand, BOOL bEnable);
};

IMPLEMENT_DYNCREATE(CMyHtmlView, CHtmlView)

void CMyHtmlView::OnCommandStateChange(long nCommand, BOOL bEnable)
{
    // 在这里执行更新 UI 状态的操作
    // nCommand 表示命令的标识,bEnable 表示该命令是否可用

    CWnd* pMainFrame = AfxGetMainWnd();
    if (pMainFrame)
    {
        // 示例:更新工具栏按钮状态
        CToolBarCtrl& toolBarCtrl = pMainFrame->GetToolBarCtrl();
        switch (nCommand)
        {
        case OLECMDID_BACK:
            // 更新后退按钮状态
            toolBarCtrl.EnableButton(ID_BACK_BUTTON, bEnable);
            break;
        case OLECMDID_FORWARD:
            // 更新前进按钮状态
            toolBarCtrl.EnableButton(ID_FORWARD_BUTTON, bEnable);
            break;
        // 其他命令处理...
        }
    }
}

通过重写 OnCommandStateChange,您可以在相关命令状态发生变化时进行自定义操作。在函数的参数中,nCommand 表示命令的标识,bEnable 表示该命令是否可用。这个函数通常在 CHtmlView 控件加载完页面后被调用,允许您更新 UI 元素的状态。


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