CMFCToolBar と CMFCMenuBar を使用する MFC アプリケーションを作成しました。初めてアイテムの状態を保存します。動的アイテムを変更または追加すると、最初の状態が表示されますが、削除されたアイテムはそこにとどまり、追加されたアイテムは表示されません。その後、すべてのアイテムがレジストリでシリアル化され、毎回読み込まれることがわかりました。私たちのすべてのアプリケーションは、アプリケーションのモジュールから動的なメニュー項目またはツールバー ボタンをロードします。
class CToolBarEx : public CMFCToolBar
{
public:
CToolBarEx()
{
}
virtual BOOL LoadState(LPCTSTR /*lpszProfileName*/ = NULL, int /*nIndex*/ = -1, UINT /*uiID*/ = (UINT) -1) { return FALSE; }
virtual BOOL SaveState(LPCTSTR /*lpszProfileName*/ = NULL, int /*nIndex*/ = -1, UINT /*uiID*/ = (UINT) -1) { return FALSE; }
};
class CMenuBarEx : public CMFCMenuBar
{
public:
CToolBarEx()
{
}
virtual BOOL LoadState(LPCTSTR /*lpszProfileName*/ = NULL, int /*nIndex*/ = -1, UINT /*uiID*/ = (UINT) -1) { return FALSE; }
virtual BOOL SaveState(LPCTSTR /*lpszProfileName*/ = NULL, int /*nIndex*/ = -1, UINT /*uiID*/ = (UINT) -1) { return FALSE; }
};
ツールバーやメニューバーに動的アイテムを追加するために使用できる唯一の方法でしたが、これは解決策ではありません.カスタマイズツールを利用したり、メニューバーの位置を保存したりしていません.これはマイクロソフトが人々に望んでいることですか?メニューとツールバーで? 一度押すと変更は許可されませんか?または私はこれについて何かが欠けていますか?