在 MFC(Microsoft Foundation Classes)框架中,没有直接的 RemoveStateFromRegistry 方法。然而,CMFCToolBar 类提供了一系列用于保存和加载工具栏状态的方法,包括 SaveState 和 LoadState。
virtual BOOL SaveState(LPCTSTR lpszProfileName, UINT uiID, UINT uiCount = 0) const;
virtual BOOL LoadState(LPCTSTR lpszProfileName, UINT uiID, UINT uiCount = 0);

这两个方法允许你保存和加载工具栏的状态到/从注册表或 INI 文件中。通常,在保存工具栏状态时,将会保存按钮的可见性、顺序等信息。如果你想要从注册表中移除工具栏的状态,可以使用 SaveState 方法将其保存到一个不存在的注册表键中,相当于删除原有的状态。

以下是一个简单的例子,演示如何通过 SaveState 方法删除注册表中的工具栏状态:
class CMyToolBar : public CMFCToolBar
{
public:
    // 在某个事件或条件触发时调用此方法
    void RemoveStateFromRegistry()
    {
        // 假设工具栏的 ID 为 IDR_MY_TOOLBAR
        SaveState(_T("MyApp\\ToolBars"), IDR_MY_TOOLBAR, 0);
    }
};

在上述示例中,CMyToolBar 继承自 CMFCToolBar,并提供了一个名为 RemoveStateFromRegistry 的方法。通过调用 SaveState 方法,将工具栏的状态保存到注册表键 "MyApp\\ToolBars" 中,实际上相当于删除了之前存在的状态。

请注意,删除工具栏状态可能会影响用户界面,应谨慎使用,并在合适的时机调用。


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