DOCKTOOL-Beispiel: Demonstriert andockbare Symbolleisten
Aktualisiert: November 2007
Das DOCKTOOL-Beispiel demonstriert die Unterstützung andockbarer Symbolleisten. Mithilfe von CMiniFrameWnd kann eine andockbare Symbolleiste an jede Seite des übergeordneten Fensters sowohl angehängt oder "angedockt" als auch abgetrennt werden bzw. in einem eigenen Minirahmenfenster unverankert bleiben.
Sicherheitshinweis: |
---|
Dieser Beispielcode dient dazu, ein Konzept zu veranschaulichen. Er sollte nicht für Anwendungen oder Websites verwendet werden, da dieser Code unter Umständen nicht die sicherste Codierungstechnik darstellt. Microsoft übernimmt keine Haftung für beiläufig entstandene Schäden oder Folgeschäden, falls der Beispielcode nicht bestimmungsgemäß verwendet wird. |
So rufen Sie Beispiele und Anweisungen für ihre Installation ab
Klicken Sie in Visual Studio im Menü Hilfe auf Beispiele.
Weitere Informationen finden Sie unter Suchen von Beispieldateien.
Die neueste Version und vollständige Liste mit Beispielen ist online unter Visual Studio 2008 Samples verfügbar.
Sie können auch Beispiele auf der Festplatte des Computers suchen. Standardmäßig werden Beispiele und eine Infodatei in einen Ordner unter \Programme\Visual Studio 9.0\Samples\ kopiert. Für Express Editions von Visual Studio sind alle Beispiele online verfügbar.
Erstellen und Ausführen des Beispiels
So erstellen Sie das DOCKTOOL-Beispiel und führen es aus
Öffnen Sie die Projektmappe docktool.sln.
Klicken Sie im Menü Erstellen auf Erstellen.
Klicken Sie im Menü Debuggen auf Starten ohne Debuggen.
Unterstützung von andockbaren Symbolleisten
Die folgenden drei Schritte sind notwendig, um eine andockbare Symbolleiste in der Anwendung zu platzieren:
Verwenden Sie die CFrameWnd::EnableDocking-Funktion, um das Andocken für das Rahmenfenster oder Ziel zu aktivieren. Ein DWORD-Parameter gibt an, von welcher Seite des Rahmenfensters das Andocken angenommen wird. Wenn Sie Steuerleisten an beliebigen Stellen andocken möchten, übergeben Sie die Meldung CBRS_ALIGN_ANY an EnableDocking.
Aktivieren Sie das Andocken für die Symbolleiste oder Quelle, indem Sie für jede Symbolleiste CControlBar::EnableDocking aufrufen. Geben Sie die Zielseiten fest, an die die Symbolleisten angedockt werden sollen. Wenn keine der angegebenen Seiten mit den zum Andocken vorgesehenen Seiten im Rahmenfenster übereinstimmt, kann die Symbolleiste nicht angedockt werden und bleibt unverankert. Eine nicht angedockte Symbolleiste bleibt unverankert und kann im Rahmenfenster nicht wieder angedockt werden.
Docken Sie die Symbolleiste an das Rahmenfenster an, indem Sie CFrameWnd::DockControlBar aufrufen. Umgekehrt müssen Sie CFrameWnd::FloatControlBar aufrufen, um eine andockbare Symbolleiste vom Rahmenfenster zu lösen.
Wenn Sie diese drei Schritte nicht komplett ausführen, zeigt die Anwendung eine Standardsymbolleiste an. Die letzten beiden Schritte müssen für jede einzelne andockbare Symbolleiste in der Anwendung ausgeführt werden.
Wenn Sie den Zustand der andockbaren Symbolleiste (entweder angedockt oder unverankert) zwischen den Aufrufen der Anwendung beibehalten möchten, können Sie die Einstellungen einer bestimmten Steuerleiste mit den Funktionen CControlBar::GetBarStyle und CControlBar::SetBarStyle abfragen und wiederherstellen. Normalerweise werden diese Daten mithilfe von CFrameWnd::SaveBarState in der INI-Datei der Anwendung gespeichert und mithilfe von CFrameWnd::LoadBarState abgerufen.
Schlüsselwörter
Dieses Beispiel demonstriert die Verwendung der folgenden Schlüsselwörter:
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
Hinweis: |
---|
In diesem und einigen anderen Beispielen wurden die Änderungen an den Visual C++-Assistenten, -Bibliotheken und -Compilern noch nicht nachvollzogen. Sie demonstrieren aber dennoch, wie Sie die gewünschte Aufgabe durchführen können. |