CToolBarのドッキング状態

[戻る]
ラケサ 2006/12/01(金) 17:33:47
CToolBarのドッキング状態について教えてください。

エディタ等でメニューバーをフローティング状態にし、
アプリケーションを終了後、再度起動するとメニューバーが離れたままになっています。

この動作を実現しようと思い、DockControlBar、FloatControlBarを調べた結果、
起動時にツールバーのドッキング、フローティングは実現できました。
しかし、アプリケーション終了時にツールバーがどのような状態に有るか取得する方法が
解りません。
ご存知の方、よろしくお願いします。

開発環境
VC++6.0 MFC SP6 SDI形式

Kerry 2006/12/01(金) 18:04:35
CFrameWnd::LoadBarState
CFrameWnd::SaveBarState

を調べてみると良いでしょう。

ラケサ 2006/12/04(月) 13:05:02
Kerry レスありがとうございます。

ツールバーが一つの場合はLoadBarState/SaveBarStateで上手くいくのですが、
複数有る場合はおかしな動きをします。
何か特殊な方法を用いる必要が有るのでしょうか?

ラケサ 2006/12/04(月) 13:06:00
すいません敬称が抜けてました。

× Kerry
○ Kerryさん

Kerry 2006/12/04(月) 13:39:01
ツールバーの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と被るからです。

ラケサ 2006/12/04(月) 14:43:07
[[解決]]
Kerryさん、レスありがとうございます。
ご指摘の通り、IDを一意にしたら正常に動作しました。

ありがとうございました。

古いスレッドには追加発言できません。