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

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de Abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Aprenda o que isto significa para si e como pode ficar protegido.

Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
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.

Regressar ao início

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
Regressar ao início

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.
Regressar ao início

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 FunctionEnd 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.
Regressar ao início

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
Regressar ao início
Propriedades

ID do Artigo: 824017 - Última Revisão: 02/27/2014 13:32:21 - Revisão: 2.0

  • Microsoft Visual Studio Tools for the Microsoft Office System
  • Microsoft Office Excel 2003
  • Microsoft Office Word 2003
  • kbnosurvey kbarchive kbhowtomaster kbpia KB824017
Esta informação foi útil?