CToolBarのドッキング状態について教えてください。
エディタ等でメニューバーをフローティング状態にし、
アプリケーションを終了後、再度起動するとメニューバーが離れたままになっています。
この動作を実現しようと思い、DockControlBar、FloatControlBarを調べた結果、
起動時にツールバーのドッキング、フローティングは実現できました。
しかし、アプリケーション終了時にツールバーがどのような状態に有るか取得する方法が
解りません。
ご存知の方、よろしくお願いします。
開発環境
VC++6.0 MFC SP6 SDI形式
CFrameWnd::LoadBarState
CFrameWnd::SaveBarState
を調べてみると良いでしょう。
Kerry レスありがとうございます。
ツールバーが一つの場合はLoadBarState/SaveBarStateで上手くいくのですが、
複数有る場合はおかしな動きをします。
何か特殊な方法を用いる必要が有るのでしょうか?
すいません敬称が抜けてました。
× Kerry
○ Kerryさん
ツールバーのIDが全部同じ(AFX_IDW_TOOLBAR)になってる、
とかいうことはないでしょうか?
CToolBar::Create(Ex)の引数をチェックしてみてください。
もしそうであれば、以下のようにIDを一意にしてやる必要が
あります。
m_wndToolBar1.Create(..., AFX_IDW_TOOLBAR + 10);
m_wndToolBar2.Create(..., AFX_IDW_TOOLBAR + 11);
m_wndToolBar3.Create(..., AFX_IDW_TOOLBAR + 12);
m_wndToolBar4.Create(..., AFX_IDW_TOOLBAR + 13);
+10から始まっているのは、+1~+5は別のコントロールバーの
IDと被るからです。
Kerryさん、レスありがとうございます。
ご指摘の通り、IDを一意にしたら正常に動作しました。
ありがとうございました。