- ベストアンサー
SDIのコントロールを隠す
- Visual C++ .NET2003でSDIのコントロールを隠す方法について教えてください
- ダイアログベースの画面にしたい場合、不要なメニューやツールバーを非表示にする方法を教えてください
- 作成したコントロールを無効にする方法について教えてください。配布時は無効にし、個人的に利用するときは有効にしたいです
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Visual C++ .NET 2003プログラミングはだんだん解ってきましたか?慣れるまでは難しいですよね。 ■作成したコントロールを無効(見えない動かない)にする方法 都合により、こちらから解説しましょう。 これには、ShowWindow(SW_HIDE);が使えます。 もし、m_Btnが、あるボタンコントロールのオブジェクトだとすると、 m_Btn.ShowWindow(SW_HIDE); でそのボタンは見えなくなります。一方、また表示するには、 m_Btn.ShowWindow(SW_SHOW); とします。 ■不要なメニューやツールバーを非表示にする方法 この際、ステータスバーも非表示にしてしまいましょう。 MainFrm.cppを開き、OnCreate関数の最後に少し手を加えます。 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("ツール バーの作成に失敗しました。\n"); return -1; // 作成できませんでした。 } if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("ステータス バーの作成に失敗しました。\n"); return -1; // 作成できませんでした。 } // TODO: ツール バーをドッキング可能にしない場合は、これらの 3 行を削除してください。 m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); m_wndStatusBar.ShowWindow(SW_HIDE); // ■追加 m_wndToolBar.ShowWindow(SW_HIDE); // SetMenu(NULL); // return 0; } コントロールを見えなくするのと同じようにShowWindow関数を使えばツールバーやステータスバーも見えなくなります。 なお、SetMenu(NULL);はメニューを削除します。 ShowWindowはよく使うので、これを機会に覚えておきましょう。
お礼
即答有難うございます。 2つとも動作することを確認しました。 FORTRAN育ちですので,VC++に慣れるまでには時間がかかりそうです。 また質問に目が止まりましたらご対応お願いします。