COMMENT FAIRE : Définir les propriétés Mask et Picture pour un bouton CommandBar Office 2003

Traductions disponibles Traductions disponibles
Numéro d'article: 824017 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article décrit étape par étape comment définir les propriétés Mask et Picture pour un contrôle CommandBar Microsoft Office 2003 à partir d'une extension de code managé créée avec Microsoft Visual Studio Tools pour Microsoft Office System. Les propriétés Picture vous permettent de définir l'image qui apparaît sur un contrôle CommandBar. Les propriétés Mask peuvent être utilisées pour créer un arrière-plan transparent pour cette image.


Création d'un projet Classeur Excel Visual Basic .NET

  1. Dans le menu Fichier de Microsoft Visual Studio .NET 2003, pointez sur Nouveau, puis cliquez sur Projet.

    La boîte de dialogue Nouveau projet s'affiche.
    1. Dans la liste Types de projets, développez Projets Microsoft Office System, puis cliquez sur Projets Visual Basic.
    2. Dans la liste Modèles, cliquez sur Classeur Excel.
    3. Dans la zone Nom, tapez ExcelCommandbar, puis cliquez sur OK.

      L'Assistant /Projet Microsoft Office s'affiche.
    4. Cliquez sur Terminer.
  2. Dans le menu Projet, cliquez sur Ajouter une référence.

    La boîte de dialogue Ajouter une référence s'affiche.
    1. Cliquez sur l'onglet .NET. Dans la liste des composants, cliquez sur System.Drawing.dll, puis cliquez sur Sélectionner.
    2. Dans la liste des composants, cliquez sur stdole, puis sur Sélectionner.
    3. Cliquez sur OK.
  3. Ajoutez la directive suivante en haut de ThisWorkbook.vb :
    Imports System.Reflection

Ajout de ressources image à votre projet

Dans cette section, vous allez ajouter deux ressources image incorporées au projet. L'une est pour les propriétés Picture du contrôle CommandBar et l'autre pour les propriétés Mask.

Ajout d'une ressource image à votre projet servant d'image pour votre contrôle CommandBar
  1. Dans le menu Projet, cliquez sur Ajouter un composant. La boîte de dialogue Ajouter un nouvel élément s'affiche.
  2. Dans la liste Modèles, cliquez sur Fichier Bitmap.
  3. Nommez l'image Picture.bmp, puis cliquez sur Ouvrir.

    L'image bitmap s'ouvre dans l'Éditeur de bitmaps pour modification.
  4. Dans le menu Affichage, cliquez sur Fenêtre Propriétés. Définissez les propriétés Largeur et Hauteur de l'image bitmap sur 16.
  5. Remplissez de rouge toute l'image bitmap, puis dessinez un cercle vert au centre de celle-ci.
  6. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Picture.bmp, puis cliquez sur Propriétés. Définissez la propriété Action de génération sur Ressource incorporée.
  7. Dans le menu Fichier, cliquez sur Enregistrer Picture.bmp.
Ajout d'une ressource image à votre projet servant de masque pour l'image de votre contrôle CommandBar
  1. Dans l'Explorateur de solutions, cliquez sur Picture.bmp.
  2. Dans le menu Fichier, cliquez sur Copier.
  3. Dans le menu Fichier, cliquez sur Coller.

    Un nouveau fichier nommé Copie de Picture.bmp est ajouté à votre projet.
  4. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Mask.bmp, puis cliquez sur Renommer. Renommez le fichier Mask.bmp.
  5. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Mask.bmp, puis cliquez sur Ouvrir. Changez la couleur de l'arrière-plan de l'image en blanc et la couleur du cercle en noir.

    Remarque Lorsque l'image avec le masque est ajoutée au contrôle CommandBar, les parties noires du masque sont visibles. Les parties blanches sont transparentes.
  6. Dans le menu Fichier, cliquez sur Enregistrer Mask.bmp.

Ajout de code pour créer une barre de commandes CommandBar et un contrôle CommandBar

Dans cette section, vous ajoutez du code au projet qui charge les ressources image incorporées en flux, génère la barre de commandes CommandBar et le contrôle CommandBar, puis définit les propriétés Picture et Mask pour le contrôle CommandBar.
  1. Ajoutez la variable au niveau de la classe suivante à la classe OfficeCodeBehind :
    WithEvents CBarButton As Office.CommandBarButton
  2. Ajoutez le code suivant au gestionnaire d'événements ThisWorkbook_Open dans ThisWorkbook.vb :
        'Get a reference to this assembly.
        Dim ThisAssembly As [Assembly]
        ThisAssembly = [Assembly].GetExecutingAssembly()
    
        'Load the Picture and the Mask image resources.
        Dim imgStreamPic As System.IO.Stream, imgStreamMask As System.IO.Stream
        imgStreamPic = ThisAssembly.GetManifestResourceStream("ExcelCommandBar.Picture.bmp")
        imgStreamMask = ThisAssembly.GetManifestResourceStream("ExcelCommandBar.Mask.bmp")
    
        'Obtain references to IPictureDisp for both images.
        Dim ax As New MyAxHost
        Dim Pic As stdole.IPictureDisp, Mask As stdole.IPictureDisp
        Pic = ax.IPictureDisp(Drawing.Image.FromStream(imgStreamPic))
        Mask = ax.IPictureDisp(Drawing.Image.FromStream(imgStreamMask))
    
        'Add a temporary CommandBar and a CommandBar button.
        Dim CBar As Office.CommandBar
        CBar = ThisApplication.CommandBars.Add("My CommandBar", , , True)
        CBarButton = CType(CBar.Controls.Add(Office.MsoControlType.msoControlButton), _
                    Office.CommandBarButton)
        CBarButton.Style = Office.MsoButtonStyle.msoButtonIconAndCaption
        CBarButton.Caption = "My Button"
        CBarButton.Tag = "My_Button"
        CBarButton.Picture = Pic
        CBarButton.Mask = Mask
        CBar.Visible = True
    
    
  3. Ajoutez la classe suivante, MyAxHost, immédiatement après le gestionnaire d'événements ThisWorkbook_Open dans ThisWorkbook.vb :
    Public Class MyAxHost
    
        Inherits System.Windows.Forms.AxHost
    
        Public Sub New()
            MyBase.New("59EE46BA-677D-4d20-BF10-8D8067CB8B33")
        End Sub
    
        Public Shared Function IPictureDisp(ByVal Image As System.Drawing.Image) As stdole.IPictureDisp
            IPictureDisp = CType(AxHost.GetIPictureDispFromPicture(Image), stdole.IPictureDisp)
        End Function
    
    End Class
  4. Ajoutez la fonction suivante à la classe OfficeCodeBehind :
    Private Sub CBarButton_Click(ByVal Ctrl As Microsoft.Office.Core.CommandBarButton,  _
        ByRef CancelDefault As Boolean) Handles CBarButton.Click
        MessageBox.Show("You clicked My Button!")
    End Sub
  5. Appuyez sur F5 pour générer et exécuter le projet.

    Notez que ExcelCommandBar.xls s'ouvre dans Excel. Lorsque le classeur s'ouvre, My CommandBar s'affiche. My CommandBar possède un contrôle CommandButton avec une image transparente.


Références

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
286460 COMMENT FAIRE : Définir les propriétés Mask et Picture pour la collection CommandBars Office XP

Propriétés

Numéro d'article: 824017 - Dernière mise à jour: jeudi 27 février 2014 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Studio Tools for the Microsoft Office System
  • Microsoft Office Excel 2003
  • Microsoft Office Word 2003
Mots-clés : 
kbnosurvey kbarchive kbhowtomaster kbpia KB824017
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com