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

Le support d'Office 2003 a pris fin

Microsoft a mis fin au support d'Office 2003 le 8 avril 2014. Cette modification a affecté vos mises à jour logicielles et options de sécurité. Découvrez les implications de ce changement à votre niveau et la marche à suivre pour rester protégé.

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).
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.

Retour au début

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
Retour au début

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.
Retour au début

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 FunctionEnd 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.
Retour au début

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
Retour au début
Propriétés

ID d'article : 824017 - Dernière mise à jour : 02/27/2014 07:51:54 - Révision : 2.0

  • Microsoft Visual Studio Tools for the Microsoft Office System
  • Microsoft Office Excel 2003
  • Microsoft Office Word 2003
  • kbnosurvey kbarchive kbhowtomaster kbpia KB824017
Commentaires