Notions de base de barre d'outils
Cet article explique 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 d'Application. Les rubriques traitées ici sont les suivantes :
L'option barre d'outil de l'Assistant d'Application.
La barre d'outils dans le code
Modifier la ressource barre d'outils
Plusieurs barres d'outils
L'Option Barre d'Outil de l'Assistant d'Application.
Pour obtenir une seule barre d'outils dotée de boutons par défaut, sélectionnez l'option standard de la barre d'outils d'ancrage dans la page intitulée Fonctionnalités de l'Interface Utilisateur. Cela ajoute le code à votre application qui :
Crée l'objet barre d'outils.
Gère la barre d'outils, notamment la possibilité d'ancrage ou de flottaison.
La 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 CMainFrame de votre application. En d'autres termes, l'objet barre d'outils est incorporé dans l'objet cadre de fenêtre principale. Cela signifie que MFC crée la barre d'outils lorsqu'il crée la fenêtre cadre et détruit la barre d'outils lorsqu'il détruit la fenêtre cadre. La déclaration de classe partielle suivante, pour une application de l'interface à multiples documents (MDI), affiche les membres de données pour une barre d'outils incorporée et la barre d'état incorporée. Il indique également la substitution de la fonction membre 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 la barre d'outils se produit dans CMainFrame::OnCreate. MFC appelle OnCreate après avoir créé la fenêtre du cadre mais avant qu'elle soit visible. Par défaut, OnCreate créé par l'Assistant d'Installation effectue les tâches suivantes de la barre d'outils :
Appelle Créer de l'objet CToolBar de la fonction membre pour créer l'objet sous-jacent CToolBarCtrl.
Appelle LoadToolBar pour charger des informations sur les ressources de la barre d'outils.
Les fonctions d'appels pour activer l'ancrage, la flottaison, et les info-bulles. Pour plus d'informations sur ces appels, consultez l'article Ancrage et barres d'outils flottantes.
Notes
L'exemple général DOCKTOOL de MFC inclut des figures des barres d'outils anciennes et récentes de MFC.Les barres d'outils qui utilisent COldToolbar requièrent des appels à l'étape 2 vers LoadBitmap (au lieu de LoadToolBar) et SetButtons.Les nouvelles barres d'outils nécessitent des appels à LoadToolBar.
L'ancrage, la flottaison, et les appels d'info-bulles sont facultatifs. Vous pouvez supprimer ces lignes de OnCreate si vous le désirez. Le résultat est une barre d'outils qui reste fixe, privée de flottaison ou d'ancrage et dont il est impossible d'afficher les info-bulles.
Modifier la Ressource Barre d'Outils
La barre d'outils par défaut que vous obtenez avec l'Assistant d'Application est basée sur une ressource personnalisée RT_TOOLBAR, introduite dans la version 4,0 de MFC. Vous pouvez modifier cette ressource grâce à toolbar editor. L'éditeur vous permet d'ajouter, supprimer, et de réorganiser les boutons simplement. Il contient un éditeur graphique pour les boutons qui est très semblable à l'éditeur graphique usuel dans Visual C++. Si vous avez modifié des barres d'outils avec une version antérieure de Visual C++, vous trouverez la tâche beaucoup plus simple à présent.
Pour connecter un bouton de la barre d'outils à commande, vous donnez au bouton un ID de commande, tel que ID_MYCOMMAND. Spécifiez l'ID de commande dans la page propriétés du bouton dans l'éditeur de barre d'outils. Créez ensuite une fonction responsable de la commande (voir Mapper des messages aux fonctions pour plus d'informations).
Les nouvelles fonctions membres CToolBar travaillent avec la ressource RT_TOOLBAR. LoadToolBar remplace maintenant LoadBitmap pour charger la bitmap des images de boutons de la barre d'outils, et SetButtons pour définir les styles les boutons et pour connecter les boutons avec des images bitmap.
Pour plus d'informations sur l'utilisation de l'éditeur de barre d'outils, consultez Éditeur de barres d'outils.
Plusieurs Barres d'Outils
L'Assistant d'Application fournit une barre d'outils par défaut. Si vous avez besoin de plusieurs barre d'outils dans votre application, vous pouvez ajuster votre code pour des d'outils supplémentaires en utilisant le code généré par l'Assistant d'Application pour la barre d'outil par défaut.
Si vous souhaitez afficher une barre d'outils comme résultat d'une commande, vous aurez besoin de :
Créer une nouvelle ressource barre d'outils avec l'éditeur de barre d'outils et la charger dans OnCreate avec la fonction membre LoadToolbar.
Incluez un nouvel objet CToolBar dans votre classe cadre de fenêtre principale.
Effectuer les appels de fonctions appropriés dans OnCreate pour l'ancrage ou la flottaison de 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 la barre d'outils de MFC (informations générales sur les barres d'outils)
Les classes CToolBar et CToolBarCtrl