Partager via


DOCKTOOL, exemple : illustre les barres d'outils ancrables

Mise à jour : novembre 2007

L'exemple DOCKTOOL illustre la prise en charge des barres d'outils ancrables. Il est possible d'attacher une barre d'outils ancrable à l'un des côtés de sa fenêtre parente mais aussi de la détacher, ou de la laisser flotter, dans sa propre fenêtre mini-frame à l'aide de CMiniFrameWnd.

Note de sécurité :

Cet exemple de code est fourni pour illustrer un concept et ne doit pas être utilisé dans des applications ou des sites Web, car il peut ne pas illustrer les pratiques de programmation les plus sûres. Microsoft n'assume aucune responsabilité pour tout dommage indirect ou consécutif en cas d'utilisation de l'exemple de code à des fins autres que celles prévues.

Pour obtenir des exemples et des instructions d'installation :

  • Dans le menu ? (Aide) de Visual Studio, cliquez sur Exemples.

    Pour plus d'informations, consultez Recherche des fichiers d'exemple.

  • La liste la plus récente et la plus complète d'exemples est disponible en ligne à partir de la page Visual Studio 2008 Samples.

  • Des exemples sont également disponibles sur le disque dur de votre ordinateur. Des exemples et un fichier Readme sont copiés par défaut dans un dossier sous \Program Files\Visual Studio 9.0\Samples\. Pour les éditions Express de Visual Studio, tous les exemples sont accessibles en ligne.

Génération et exécution de l'exemple

Pour générer et exécuter l'exemple DOCKTOOL

  1. Ouvrez la solution docktool.sln.

  2. Dans le menu Générer, cliquez sur Générer.

  3. Dans le menu Déboguer, cliquez sur Exécuter sans débogage.

Prise en charge des barres d'outils ancrables

Les trois étapes suivantes sont nécessaires pour placer une barre d'outils ancrable dans votre application :

  1. Activez l'ancrage de la fenêtre frame ou de la destination à l'aide de la fonction CFrameWnd::EnableDocking. Un paramètre DWORD indique quel est le côté de la fenêtre frame qui accepte l'ancrage. Pour ancrer des barres de contrôles à n'importe quel emplacement, passez CBRS_ALIGN_ANY à EnableDocking.

  2. Activez l'ancrage de la barre d'outils ou de la source en appelant CControlBar::EnableDocking pour chaque barre d'outils. Spécifiez les côtés de destination auxquels la barre d'outils doit s'ancrer. Si aucun des côtés spécifiés ne correspond aux côtés activés pour l'ancrage dans la fenêtre frame, la barre d'outils ne peut pas être ancrée ; elle flotte. Dès qu'elle flotte, elle reste alors une barre d'outils flottante, incapable de s'ancrer à la fenêtre frame.

  3. Ancrez la barre d'outils à la fenêtre frame en appelant CFrameWnd::DockControlBar. À l'inverse, appelez CFrameWnd::FloatControlBar pour détacher une barre d'outils ancrable de la fenêtre frame.

Si vous n'effectuez pas ces trois étapes, votre application affiche une barre d'outils standard. Les deux dernières étapes doivent être réalisées pour chacune des barres d'outils ancrables de votre application.

Pour conserver l'état des barres d'outils ancrables (ancrées ou flottantes) entre les appels à votre application, utilisez les fonctions CControlBar::SetBarStyle et CControlBar::GetBarStyle pour récupérer et restaurer les paramètres d'une barre de contrôles particulière. Normalement, ces informations sont stockées dans le fichier INI de l'application à l'aide de CFrameWnd::SaveBarState et sont récupérées à l'aide de CFrameWnd::LoadBarState.

Mots clés

Cet exemple illustre l'utilisation des mots clés suivants :

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

Remarque :

Certains exemples, tels que celui-ci, n'ont pas été modifiés pour refléter les changements apportés aux Assistants, aux bibliothèques et au compilateur Visual C++, mais ils illustrent bien l'exécution de la tâche souhaitée.

Voir aussi

Autres ressources

Exemples MFC