• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SDIのコントロールを隠す)

SDIのコントロールを隠す

このQ&Aのポイント
  • Visual C++ .NET2003でSDIのコントロールを隠す方法について教えてください
  • ダイアログベースの画面にしたい場合、不要なメニューやツールバーを非表示にする方法を教えてください
  • 作成したコントロールを無効にする方法について教えてください。配布時は無効にし、個人的に利用するときは有効にしたいです

質問者が選んだベストアンサー

  • ベストアンサー
  • otu_otu
  • ベストアンサー率31% (17/54)
回答No.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はよく使うので、これを機会に覚えておきましょう。

naetop
質問者

お礼

即答有難うございます。 2つとも動作することを確認しました。 FORTRAN育ちですので,VC++に慣れるまでには時間がかかりそうです。 また質問に目が止まりましたらご対応お願いします。

関連するQ&A