DOCKTOOL サンプル : ドッキング可能ツール バー
更新 : 2007 年 11 月
DOCKTOOL サンプルでは、ドッキング可能ツール バーのサポートを示します。ドッキング可能ツール バーは、親ウィンドウの辺に取り付ける (ドッキングする) ことができます。CMiniFrameWnd を使用して、独自のミニフレーム ウィンドウとしてウィンドウの辺から切り離す (フローティングさせる) ことができます。
セキュリティに関するメモ : |
---|
このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。 |
サンプルとそのインストール手順を取得するには
Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。
詳細については、「サンプル ファイルの格納場所」を参照してください。
使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。
サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。
サンプルのビルドと実行
DOCKTOOL サンプルをビルドおよび実行するには
ソリューション docktool.sln を開きます。
[ビルド] メニューの [ビルド] をクリックします。
[デバッグ] メニューの [デバッグなしで開始] をクリックします。
ドッキング可能ツール バーのサポート
ドッキング可能ツール バーをアプリケーションに組み込むには、次の 3 つの手順が必要です。
CFrameWnd::EnableDocking 関数を使用して、フレーム ウィンドウ、つまりドッキング先にドッキングできるようにします。関数の DWORD パラメータには、ドッキング先のフレーム ウィンドウの辺を指定します。コントロール バーを辺にドッキングするには、EnableDocking に CBRS_ALIGN_ANY を渡します。
ツール バーごとに CControlBar::EnableDocking を呼び出して、ツール バー、つまりドッキング ソースをドッキング可能にします。ツール バーをドッキングする、ドッキング先の辺を指定します。指定した辺が、フレーム ウィンドウのドッキングできる辺と異なる場合、ツール バーはドッキングできず、フローティング状態になります。いったんフローティング状態になると、そのツール バーはフローティング ツール バーのままとなり、フレーム ウィンドウにはドッキングできません。
CFrameWnd::DockControlBar を呼び出して、ツール バーをフレーム ウィンドウにドッキングします。フレーム ウィンドウからドッキング可能ツール バーを切り離すには、CFrameWnd::FloatControlBar を呼び出します。
これらの 3 つの手順を行わないと、アプリケーションには標準のツール バーが表示されます。最後の 2 つの手順は、アプリケーションの各ドッキング可能ツール バーごとに必要です。
アプリケーションを再起動したときにドッキング可能ツール バーの状態 (ドッキングまたはフローティング) を保持するには、CControlBar::SetBarStyle 関数と CControlBar::GetBarStyle 関数を使用して、特定のコントロール バーの設定を取得および復元します。通常、この情報は CFrameWnd::SaveBarState を使用してアプリケーションの .ini ファイルに格納され、CFrameWnd::LoadBarState を使用して取得されます。
キーワード
このサンプルでは、次のキーワードを使用します。
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++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。 |