WIN32APIアプリでツールバー/スステータスバーの表示切り替え
VC++6.0のwin32sdkで、MFCのSDI標準テンプレートのようにメニューでツールバー,ステータスバーを切り替えるアプリケーションにしたいと思います。
以下のようなコードにしていますが、このままでは表示非表示を切り替えた場合、中央ウインドウのサイズが変更されません。
ドラッグして全体のサイズを変更すると中央メインウインドウも正常な表示になりますが、なにか中央のウインドウを再描画する処理が必要と思われます。その再描画処理についてご教示くださいますようお願いします。
1)ステータスバーの高さ,ツールバーの高さをグローバル変数にする
2)メニューからのメッセージでこのグローバル変数を表示(夫々のバーの高さ)、非表示(夫々のバーの高さ=0)を切り替える。
3)WndProcのWM_SIZEで中央メインウインドウをMoveMindowする
[グローバル変数]
----------------------------------------------
static int bShow = 16;//ステータスバーの高さ(非表示は0)
static int tbShow = 25;//ツールバーの高さ(非表示は0)
----------------------------------------------
[LRESULT CALLBACK WndProcの一部]
-----------------------------------------------
case WM_SIZE:
......
MoveWindow(中央のハンドル, 0, tbShow, LOWORD(lp), HIWORD(lp)-tbShow-bShow, TRUE);
break;
-----------------------------------------------
お礼
CMFCToolBar~クラス群の存在を知りました。やりたかった事ができそうです。 ご回答有難うございました。