Entrar

COMO: Definir as Propriedades Mask e Picture para um Botão 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. Saiba o que isto significa para você e como permanecer protegido.

Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo passo-a-passo descreve como definir as propriedades Mask e Picture de um controle CommandBar do Microsoft Office 2003 a partir de uma extensão de código gerenciada criada com o Visual Studio Tools for the Microsoft Office System. A propriedade Picture permite que você configure a imagem que aparece em um controle CommandBar. A propriedade Mask pode ser usada para criar um plano de fundo transparente para aquela imagem.

voltar para o início

Criar um Novo Projeto da Pasta de Trabalho do Visual Basic .NET Excel

  1. No menu Arquivo no Microsoft Visual Studio .NET 2003, aponte para Novo e clique em Projeto.

    A caixa de diálogo Novo Projeto aparece.
    1. Na lista Tipos de Projeto, expanda Projetos do Microsoft Office System e clique em Projetos do Visual Basic.
    2. Na lista Modelos, clique em Pasta de Trabalho do Excel.
    3. Na caixa Nome, digite ExcelCommandbar e clique em OK.

      O Assistente Projeto do Microsoft Office aparece.
    4. Clique em Concluir.
  2. No menu Projeto, clique em Adicionar Referência.

    A caixa de diálogo Adicionar Referência aparece.
    1. Clique na guia .NET. Na lista de componentes, clique em System.Drawing.dll e em Selecionar.
    2. Na lista de componentes, clique em stdole e em Selecionar.
    3. Clique em OK.
  3. Adicione a seguinte diretiva na parte superior de ThisWorkbook.vb:
    Imports System.Reflection
voltar para o início

Adicionar Recursos de Imagem ao seu Projeto

Nesta seção, você irá adicionar dois recursos de imagem incorporados ao projeto. Um recurso é usado para a propriedade Picture do controle CommandBar. O outro recurso é usado para a propriedade Mask.

Adicionar um Recurso de Imagem ao seu Projeto que Funciona Como a Imagem para seu Controle CommandBar
  1. No menu Projeto, clique em Adicionar Componente. A caixa de diálogo Adicionar Novo Item aparece.
  2. Na lista Modelos, clique em Arquivo de Bitmap.
  3. Nomeie a imagem Picture.bmp e clique em Abrir.

    O bitmap é aberto para edição no Editor de Bitmap.
  4. No menu Exibir, clique em Janela de Propriedades. Defina as propriedades Width e Height do bitmap como 16.
  5. Preencha toda a área do bitmap com vermelho e desenhe um círculo verde no centro do bitmap.
  6. No Solution Explorer, clique com o botão direito do mouse em Picture.bmp e clique em Propriedades. Altere a propriedade Build Action para Embedded Resource.
  7. No menu Arquivo, clique em Salvar Picture.bmp.
Adicionar um Recurso de Imagem ao seu Projeto que Funciona Como a Máscara para sua Imagem do Controle CommandBar
  1. No Solution Explorer, clique em Picture.bmp.
  2. No menu Arquivo, clique em Copiar.
  3. No menu Arquivo, clique em Colar.

    É adicionado ao projeto um novo arquivo chamado Cópia de Picture.bmp.
  4. No Solution Explorer, clique com o botão direito do mouse em Mask.bmp e clique em Renomear. Mude o nome para Mask.bmp.
  5. No Solution Explorer, clique com o botão direito do mouse em Mask.bmp e clique em Abrir. Altere a cor do plano de fundo da imagem para branco e a cor do círculo para preto.

    Nota Quando a figura com a máscara for adicionada ao controle CommandBar, as áreas em preto da máscara estarão visíveis. As áreas em branco são transparentes.
  6. No menu Arquivo, clique em Salvar Mask.bmp.
voltar para o início

Adicionar Código para Criar um CommandBar e Controle CommandBar

Nesta seção, você adiciona código ao projeto que carrega os recursos de imagem incorporados em fluxos, cria CommandBar e o controle CommandBar e define as propriedades Picture e Mask para o controle CommandBar.
  1. Adicione a seguinte variável do nível de classe à classe OfficeCodeBehind:
    WithEvents CBarButton As Office.CommandBarButton
  2. Adicione o seguinte código ao manipulador de eventos ThisWorkbook_Open em 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. Adicione a seguinte classe, MyAxHost, logo após o manipulador de eventos ThisWorkbook_Open em 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("You clicked My Button!")End Sub
  5. Pressione F5 para criar e executar o projeto.

    Note que ExcelCommandBar.xls é aberto no Excel. Quando a pasta de trabalho for aberta, My CommandBar aparece. My CommandBar possui um controle CommandButton com uma imagem transparente.
voltar para o início

Referências
Para obter informações adicionais, clique no número abaixo para consultar o artigo na Base de Dados de Conhecimento da Microsoft:
286460 HOWTO: Set the Mask and Picture Properties for Office XP CommandBars
voltar para o início
Propriedades

ID do Artigo: 824017 - Última Revisão: 02/27/2014 07:51:54 - 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
Comentários