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. Sont abordés les sujets suivants :
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 de barre d’outils d’ancrage standard dans la page intitulée Fonctionnalités de l’interface utilisateur. Cela ajoute du code à votre application qui :
Crée l’objet de barre d’outils.
Gère la barre d’outils, y compris sa capacité à ancrer ou à flotter.
Barre d’outils dans le code
La barre d’outils est un objet CToolBar déclaré en tant que membre de données de la classe de CMainFrame
votre application. En d’autres termes, l’objet de barre d’outils est incorporé dans l’objet de fenêtre cadre principale. Cela signifie que MFC crée la barre d’outils lorsqu’elle 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 (Multiple Document Interface), affiche les membres de données d’une barre d’outils incorporée et d’une barre d’état incorporée. Il affiche également le remplacement de la OnCreate
fonction membre.
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 la barre d’outils se produit dans CMainFrame::OnCreate
. MFC appelle OnCreate après avoir créé la fenêtre pour le cadre, mais avant qu’elle ne devienne visible. La valeur par défaut générée par OnCreate
l’Assistant Application effectue les tâches de barre d’outils suivantes :
Appelle la fonction Create member de l’objet
CToolBar
pour créer l’objet CToolBarCtrl sous-jacent.Appelle LoadToolBar pour charger les informations de ressource de la barre d’outils.
Appelle des fonctions pour activer l’ancrage, la flottante et les info-bulles. Pour plus d’informations sur ces appels, consultez l’article Ancrage et barres d’outils flottantes.
Remarque
L’exemple MFC General DOCKTOOL inclut des illustrations des barres d’outils MFC anciennes et nouvelles. Les barres d’outils qui utilisent COldToolbar
nécessitent des appels à l’étape 2 à LoadBitmap
(plutôt qu LoadToolBar
') et à SetButtons
. Les nouvelles barres d’outils nécessitent des appels à LoadToolBar
.
Les appels d’ancrage, de flottante et d’outils sont facultatifs. Vous pouvez supprimer ces lignes si OnCreate
vous préférez. Le résultat est une barre d’outils qui reste fixe, qui ne peut pas flotter ou redocker et ne peut pas afficher les info-bulles.
Modification de la ressource de barre d’outils
La barre d’outils par défaut que vous obtenez avec l’Assistant Application est basée sur une ressource personnalisée RT_TOOLBAR , introduite dans MFC version 4.0. Vous pouvez modifier cette ressource avec l’éditeur de barre d’outils. L’éditeur vous permet d’ajouter, de supprimer et de réorganiser facilement des boutons. Il contient un éditeur graphique pour les boutons qui est très similaire à l’éditeur graphique général dans Visual C++. Si vous avez modifié des barres d’outils dans les versions précédentes de Visual C++, vous trouverez la tâche beaucoup plus facile maintenant.
Pour connecter un bouton de barre d’outils à une commande, vous attribuez un ID de commande, tel que 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 de gestionnaire pour la commande (consultez Mappage des messages aux fonctions pour plus d’informations).
Les nouvelles fonctions membres CToolBar fonctionnent avec la ressource RT_TOOLBAR . LoadToolBar prend désormais la place de LoadBitmap pour charger la bitmap des images de bouton de barre d’outils, et SetButtons pour définir les styles de bouton 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 barre d’outils.
Plusieurs barres d’outils
L’Assistant Application vous fournit une barre d’outils par défaut. Si vous avez besoin de plusieurs barres d’outils dans votre application, vous pouvez modéliser votre code pour des barres d’outils supplémentaires basées sur le code généré par l’Assistant pour la barre d’outils par défaut.
Si vous souhaitez afficher une barre d’outils à la suite d’une commande, vous devez :
Créez une ressource de barre d’outils avec l’éditeur de barre d’outils et chargez-la avec
OnCreate
la fonction membre LoadToolbar .Incorporez un nouvel objet CToolBar dans votre classe de fenêtre frame principale.
Effectuez les appels de fonction appropriés pour
OnCreate
ancrer ou flotter la barre d’outils, définir ses styles, et ainsi de suite.
Que voulez-vous en savoir plus sur
Implémentation de la barre d’outils MFC (informations de vue d’ensemble sur les barres d’outils)
Classes CToolBar et CToolBarCtrl