CToolBarのドッキング状態 – プログラミング – Home

CToolBarのドッキング状態
 
通知
すべてクリア

[解決済] CToolBarのドッキング状態


ラケサ
 ラケサ
(@ラケサ)
ゲスト
結合: 18年前
投稿: 8
Topic starter  

CToolBarのドッキング状態について教えてください。

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

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

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


引用未解決
トピックタグ
Kerry
 Kerry
(@Kerry)
ゲスト
結合: 20年前
投稿: 192
 

CFrameWnd::LoadBarState
CFrameWnd::SaveBarState

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


返信引用
ラケサ
 ラケサ
(@ラケサ)
ゲスト
結合: 18年前
投稿: 8
Topic starter  

Kerry レスありがとうございます。

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


返信引用
ラケサ
 ラケサ
(@ラケサ)
ゲスト
結合: 18年前
投稿: 8
Topic starter  

すいません敬称が抜けてました。

× Kerry
○ Kerryさん


返信引用
Kerry
 Kerry
(@Kerry)
ゲスト
結合: 20年前
投稿: 192
 

ツールバーの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と被るからです。


返信引用
ラケサ
 ラケサ
(@ラケサ)
ゲスト
結合: 18年前
投稿: 8
Topic starter  

Kerryさん、レスありがとうございます。
ご指摘の通り、IDを一意にしたら正常に動作しました。

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました