COMO: Definir as propriedades Mask e Picture de um botão de CommandBar do Office 2003

Traduções de Artigos Traduções de Artigos
Artigo: 824017 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo passo a passo descreve como definir as propriedades Mask e Picture de um controlo de CommandBar (barra de comandos) do Microsoft Office 2003 a partir de uma extensão de código gerida criada com o Visual Studio Tools for the Microsoft Office System. As propriedades Picture permitem definir a imagem apresentada num controlo de CommandBar. As propriedades Mask podem ser utilizadas para criar um fundo transparente para essa imagem.


Criar um novo projecto de livro do Excel do Visual Basic .NET

  1. No menu File do Microsoft Visual Studio .NET 2003, aponte para New e clique em Project.

    A caixa de diálogo New Project é apresentada.
    1. Na lista Project Types, expanda Microsoft Office System Projects e clique em Visual Basic Projects.
    2. Na lista Templates, clique em Excel Workbook.
    3. Na caixa Name, escreva ExcelCommandbar e clique em OK.

      É apresentado o Microsoft Office Project Wizard.
    4. Clique em Finish.
  2. No menu Project, clique em Add Reference.

    A caixa de diálogo Add Reference é apresentada.
    1. Clique no separador .NET. Na lista de componentes, clique em System.Drawing.dll e clique em Select.
    2. Na lista de componentes, clique em stdole e clique em Select.
    3. Clique em OK.
  3. Adicione a seguinte directiva no início de ThisWorkbook.vb:
    Imports System.Reflection

Adicionar recursos de imagem ao projecto

Nesta secção, vai adicionar dois recursos de imagem incorporados ao projecto. Um dos recursos é para as propriedades Picture do controlo de CommandBar. O outro recurso é para as propriedades Mask.

Adicionar um recurso de imagem ao projecto para servir de imagem para o controlo de CommandBar
  1. No menu Project, clique em Add Component. A caixa de diálogo Add New Item é apresentada.
  2. Na lista Templates, clique em Bitmap File.
  3. Atribua o nome Picture.bmp à imagem e clique em Open.

    O mapa de bits é aberto para edição no Bitmap Editor.
  4. No menu View, clique em Properties Window. Defina as propriedades Width e Height do mapa de bits como 16.
  5. Preencha toda a área do mapa de bits a vermelho e desenhe um círculo verde no centro do mapa de bits.
  6. No Solution Explorer, clique com o botão direito do rato em Picture.bmp e clique em Properties. Altere a propriedade Build Action para Embedded Resource.
  7. No menu File, clique em Save Picture.bmp.
Adicionar um recurso de imagem ao projecto para servir de máscara para a imagem do controlo de CommandBar
  1. No Solution Explorer, clique em Picture.bmp.
  2. No menu File, clique em Copy.
  3. No menu File, clique em Paste.

    É adicionado um novo ficheiro, denominado Copy of Picture.bmp, ao projecto.
  4. No Solution Explorer, clique com o botão direito do rato em Copy of Picture.bmp e clique em Rename. Mude o nome para Mask.bmp.
  5. No Solution Explorer, clique com o botão direito do rato em Mask.bmp e clique em Open. Altere a cor de fundo da imagem para branco e altere a cor do círculo para preto.

    Nota: quando a imagem com a máscara é adicionada ao controlo de CommandBar, as áreas a preto da máscara são visíveis. As áreas brancas são transparentes.
  6. No menu File, clique em Save Mask.bmp.

Adicionar código para criar uma CommandBar e um controlo de CommandBar

Nesta secção, o utilizador adiciona código, ao projecto, que carrega os recursos de imagem incorporados em sequências, compila a CommandBar e o controlo de CommandBar e define as propriedades Picture e Mask do controlo de CommandBar.
  1. Adicione a seguinte variável de classe à classe OfficeCodeBehind:
    WithEvents CBarButton As Office.CommandBarButton
  2. Adicione o seguinte código ao processador de evento ThisWorkbook_Open de ThisWorkbook.vb:
        'Obter uma referência para esta assemblagem.
        Dim ThisAssembly As [Assembly]
        ThisAssembly = [Assembly].GetExecutingAssembly()
    
        'Carregar os recursos de imagem Picture e Mask.
        Dim imgStreamPic As System.IO.Stream, imgStreamMask As System.IO.Stream
        imgStreamPic = ThisAssembly.GetManifestResourceStream("ExcelCommandBar.Picture.bmp")
        imgStreamMask = ThisAssembly.GetManifestResourceStream("ExcelCommandBar.Mask.bmp")
    
        'Obter referências para IPictureDisp de ambas as imagens.
        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))
    
        'Adicionar uma CommandBar e um botão de CommandBar temporários.
        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. Adicione a seguinte classe, MyAxHost, imediatamente depois do processador de evento ThisWorkbook_Open de 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. Adicione a seguinte função à classe OfficeCodeBehind:
    Private Sub CBarButton_Click(ByVal Ctrl As Microsoft.Office.Core.CommandBarButton,  _
        ByRef CancelDefault As Boolean) Handles CBarButton.Click
        MessageBox.Show("Clicou em My Button!")
    End Sub
  5. Prima a tecla F5 para compilar e executar o projecto.

    Como poderá constatar, o ExcelCommandBar.xls é aberto no Excel. Quando o livro é aberto, My CommandBaré apresentada. My CommandBar tem um controlo CommandButton com uma imagem transparente.


Referências

Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
286460 HOWTO: Set the Mask and Picture Properties for Office XP CommandBars

Propriedades

Artigo: 824017 - Última revisão: 27 de fevereiro de 2014 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Studio Tools for the Microsoft Office System
  • Microsoft Office Excel 2003
  • Microsoft Office Word 2003
Palavras-chave: 
kbnosurvey kbarchive kbhowtomaster kbpia KB824017

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