Notions de base de barre d'outils
Cet article décrit l'implémentation MFC fondamentale qui vous permet d'ajouter une barre d'outils par défaut à votre application en sélectionnant une option dans l'Assistant Application.Les rubriques traitées ici sont les suivantes :
L'option de barre d'outils de l'Assistant Application
La barre d'outils dans le code
Modifier la ressource de barre d'outils
Plusieurs barres d'outils
L'option de barre d'outils de l'Assistant Application
Pour obtenir une barre d'outils unique avec des boutons par défaut, sélectionnez l'option standard de barre d'outils d'ancrage sur la page étiquetée des fonctionnalités d'interface utilisateur.Cela ajoute du code à votre application qui :
Crée l'objet barre d'outils.
Gère la barre d'outils, notamment sa capacité à ancrer ou flotter.
La barre d'outils dans le code
La barre d'outils est un objet de CToolBar déclaré comme membre de données de la classe de CMainFrame de votre application.En d'autres termes, l'objet barre d'outils est incorporé dans l'objet fenêtre frame principale.Cela signifie que MFC crée la barre d'outils lorsqu'il crée la fenêtre frame et détruit la barre d'outils lorsqu'elle détruit la fenêtre frame.La déclaration de classe partielle suivante, pour une application (MDI) d'interface multidocument, affiche les données membres pour une barre d'outils incorporée et une barre d'état incorporée.Il montre également la substitution de la fonction membre d' OnCreate .
class CMainFrame : public CMDIFrameWnd
{
// Implementation
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
// Generated message map functions
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
DECLARE_MESSAGE_MAP()
La création de barre d'outils se produit dans CMainFrame::OnCreate.MFC appelle OnCreate après avoir créé la fenêtre pour le frame mais avant qu'il soit visible.OnCreate par défaut de l'Assistant Application génère l'erreur effectue les tâches suivantes de barre d'outils :
Appelle la fonction membre de Create de l'objet d' CToolBar pour créer l'objet sous-jacent de CToolBarCtrl .
Appels LoadToolBar pour charger des informations sur les ressources de barre d'outils.
Les appels s'exécute pour activer l'ancrage, le flottante, et les info-bulles.Pour plus d'informations sur ces appels, consultez l'article L'ancrage et barres d'outils flottante.
[!REMARQUE]
L'exemple général DOCKTOOL MFC inclut des illustrations des barres d'outils anciennes et nouvelles MFC.Les barres d'outils qui utilisent COldToolbar requièrent des appels à l'étape 2 à LoadBitmap (plutôt qu' LoadToolBar) et à SetButtons.Les nouvelles barres d'outils requièrent des appels à LoadToolBar.
L'ancrage, le flottante, et les appels d'info-bulles sont facultatifs.Vous pouvez supprimer ces lignes d' OnCreate si vous préférez.Le résultat est une barre d'outils qui reste fixe, incapable de flotter ou redock et impossible d'afficher les info-bulles.
Modifier la ressource de barre d'outils
La barre d'outils par défaut que vous obtenez avec l'Assistant Application est basé sur une ressource personnalisée en RT_TOOLBAR , introduite dans la version 4,0 des MFC.Vous pouvez modifier cette ressource avec éditeur de barre d'outils.L'éditeur vous permet de facilement ajouter, supprimer, et organiser les boutons.Il contient un éditeur graphique des boutons qui est très semblable à l'éditeur graphique général dans Visual C++.Si vous avez modifié les barres d'outils dans les versions précédentes de Visual C++, vous trouverez la tâche beaucoup plus facile à présent.
Pour connecter un bouton de barre d'outils à une commande, vous attribuez au bouton un ID de commande, tel qu' ID_MYCOMMAND.Spécifiez l'ID de commande dans la page de propriétés du bouton dans l'éditeur de barre d'outils.Créez ensuite une fonction gestionnaire pour la commande (consultez Mapper les messages aux fonctions pour plus d'informations).
Nouveau travail de fonctions membres de CToolBar à la ressource en RT_TOOLBAR .LoadToolBar remplace maintenant LoadBitmap pour charger la bitmap des images de bouton de barre d'outils, puis SetButtons pour définir les styles des boutons et connecter des boutons avec des images bitmap.
Pour plus d'informations sur l'utilisation de l'éditeur de barre d'outils, consultez L'Éditeur de barres d'outils.
Plusieurs barres d'outils
L'Assistant Application fournit une barre d'outils par défaut.Si vous avez besoin de plusieurs barre d'outils de votre application, vous pouvez modéliser votre code pour les barres d'outils supplémentaires selon le code généré par l'Assistant pour la barre d'outils par défaut.
Si vous souhaitez afficher une barre d'outils comme résultat d'une commande, vous aurez besoin :
Créez une ressource nouvelle barre d'outils de l'éditeur de barre d'outils et chargez-la dans OnCreate avec la fonction membre de LoadToolbar .
Incluez un objet de CToolBar dans la classe de fenêtre frame principale.
Effectuez les appels adaptés de fonction dans OnCreate à l'ancrer ou flotter la barre d'outils, définissez ses styles, et ainsi de suite.
Sur quels éléments souhaitez-vous obtenir des informations supplémentaires ?
Implémentation de barre d'outils MFC (informations d'ordre général sur les barres d'outils)
Les classes de CToolBar et de CToolBarCtrl