DOCKTOOL サンプル:ドッキング ツールバーを示しています
DOCKTOOL サンプルでは、ドッキング可能ツール バーのサポートを示します。 ドッキング可能ツール バーは、親ウィンドウの辺に取り付ける (ドッキングする) ことができます。CMiniFrameWnd を使用して、独自のミニフレーム ウィンドウとしてウィンドウの辺から切り離す (フローティングさせる) ことができます。
セキュリティに関するメモ |
---|
このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。 |
サンプルとそのインストール手順を取得するには
Visual Studio のサンプルにアクセスするには
[ヘルプ] メニューの [サンプル] をクリックします。
既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。
サンプルのビルドと実行
DOCKTOOL サンプルをビルドおよび実行するには
ソリューション docktool.sln を開きます。
[ビルド] メニューの [ビルド] をクリックします。
でデバッグ メニューの、[デバッグなしで開始 をクリックします。
ドッキング可能ツール バーのサポート
ドッキング可能ツール バーをアプリケーションに組み込むには、次の 3 つの手順が必要です。
CFrameWnd::EnableDocking 関数を使用して、フレーム ウィンドウ、つまりドッキング先にドッキングできるようにします。 関数の DWORD パラメーターには、ドッキング先のフレーム ウィンドウの辺を指定します。 コントロール バーを辺にドッキングするには、CBRS_ALIGN_ANY に EnableDocking を渡します。
ツール バーごとに CControlBar::EnableDocking を呼び出して、ツール バー、つまりドッキング ソースをドッキング可能にします。 ツール バーをドッキングする、ドッキング先の辺を指定します。 指定した辺が、フレーム ウィンドウのドッキングできる辺と異なる場合、ツール バーはドッキングできず、フローティング状態になります。 いったんフローティング状態になると、そのツール バーはフローティング ツール バーのままとなり、フレーム ウィンドウにはドッキングできません。
CFrameWnd::DockControlBar を呼び出して、ツール バーをフレーム ウィンドウにドッキングします。 フレーム ウィンドウからドッキング可能ツール バーを切り離すには、CFrameWnd::FloatControlBar を呼び出します。
これらの 3 つの手順を行わないと、アプリケーションには標準のツール バーが表示されます。 最後の 2 つの手順は、アプリケーションの各ドッキング可能ツール バーごとに必要です。
アプリケーションを再起動したときにドッキング可能ツール バーの状態 (ドッキングまたはフローティング) を保持するには、CControlBar::SetBarStyle 関数と CControlBar::GetBarStyle 関数を使用して、特定のコントロール バーの設定を取得および復元します。 通常、この情報は CFrameWnd::SaveBarState を使用してアプリケーションの .ini ファイルに格納され、CFrameWnd::LoadBarState を使用して取得されます。
Keywords
このサンプルでは、次のキーワードを使用します。
AfxGetApp; CArchive::IsStoring; CComboBox::Create; CComboBox::DeleteString; CComboBox::GetCount; CComboBox::InsertString; CComboBox::SetCurSel; CControlBar::GetBarStyle; CControlBar::SetBarStyle; CDialog::DoModal; CDocument::OnNewDocument; CFrameWnd::Create; CFrameWnd::DockControlBar; CFrameWnd::EnableDocking; CFrameWnd::LoadBarState; CFrameWnd::RecalcLayout; CFrameWnd::SaveBarState; CMenu::GetSubMenu; CMenu::LoadMenu; CMenu::TrackPopupMenu; CObject::AssertValid; CObject::Dump; CObject::Serialize; CRect::OffsetRect; CString::IsEmpty; CToolBar::Create; CToolBar::GetItemRect; CToolBar::LoadBitmap; CToolBar::SetButtonInfo; CToolBar::SetButtons; CView::GetDocument; CView::OnDraw; CWinApp::AddDocTemplate; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::OnFileNew; CWnd::ClientToScreen; CWnd::DoDataExchange; CWnd::FromHandlePermanent; CWnd::GetParentFrame; CWnd::GetStyle; CWnd::GetWindowPlacement; CWnd::GetWindowRect; CWnd::GetWindowText; CWnd::Invalidate; CWnd::IsZoomed; CWnd::OnClose; CWnd::OnCreate; CWnd::PreTranslateMessage; CWnd::SendMessage; CWnd::SetWindowPlacement; CWnd::SetWindowPos; CWnd::SetWindowText; CWnd::ShowWindow; GetProfileInt; GetProfileString; GetStockObject; HIWORD; LOWORD; LoadBitmap; WriteProfileString; wsprintf
注意
このサンプルを含む一部のサンプルには、Visual C++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。