Como definir as propriedades de imagem e máscara para Office XP CommandBars

Traduções deste artigo Traduções deste artigo
ID do artigo: 286460 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Microsoft Office XP apresenta duas novas propriedades ao objeto CommandBarButton : as propriedades Mask e Picture . Você pode usar essas propriedades para colocar imagens em controles de barra de comandos gerado personalizado.

Observação Essas propriedades também estão disponíveis no Microsoft Office 2003.

Mais Informações

As propriedades Mask e Picture são definidas como tipo IPictureDisp , que é um membro da biblioteca Stdole. IPictureDisp usa métodos que não podem ser empacotados limites de processo. Portanto, as propriedades Mask e Picture só podem ser chamadas em processo (macros do VBA, automação suplementos e DLLs ActiveX executado em processo). Consulte a seção "Referências" para obter mais informações sobre esse comportamento.

O exemplo abaixo mostra como criar um automação suplemento que adiciona um botão de CommandBar com uma imagem mascarado.

Etapas para criar imagens para a imagem e a máscara

  1. Inicie o Microsoft Paint. No menu imagem , clique em atributos . Altere o tamanho da imagem para 32 x 32 e clique em OK .
  2. Desenhe uma face de amarela na superfície de pintura. Preencha a área ao redor do círculo com azul.

    Recolher esta imagemExpandir esta imagem
    Picture of sample Picture.bmp. Steps
				to re-create this image are given in this article.
  3. Salve a imagem como Circle.bmp.
  4. Para criar a máscara, preencha o círculo com preto e preencher a área fora do círculo com branco. Quando a imagem com a máscara é adicionada ao controle de CommandBar, as áreas em preto da máscara estarão visíveis, enquanto as áreas em branco são transparentes.

    Recolher esta imagemExpandir esta imagem
    Picture of sample Mask.bmp. Steps to
				re-create this image are given in this article.
  5. Salve a imagem como Mask.bmp.

Passos para criar AddIn COM


  1. Inicie o Visual Basic e crie um AddIn novo projeto.
  2. No menu Project , clique em referências . Se uma biblioteca de tipos "Microsoft Office" anterior à versão que XP está selecionada, desmarque que biblioteca de tipos e selecione a biblioteca de tipos para o Microsoft Office XP. Clique em OK .
  3. No Explorador de projeto, clique com o botão direito do mouse frmAddin e clique em Remover frmAddin .
  4. No Explorador de projeto, clique duas vezes o designer de conectar . Para o aplicativo selecione Microsoft Excel e, para Comportamento de carregamento inicial selecione inicialização .
  5. No menu Exibir , clique em código e substitua o código para adicionar - com o seguinte:
    Option Explicit
    
    Dim oExcel As Object
    Dim WithEvents oButton As Office.CommandBarButton
    
    Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
     ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
     ByVal AddInInst As Object, custom() As Variant)
    
      Dim oPic As stdole.IPictureDisp
      Dim oMask As stdole.IPictureDisp
    
      ' Load the picture and mask.
      Set oPic = LoadPicture(App.Path & "\circle.bmp")
      Set oMask = LoadPicture(App.Path & "\mask.bmp")
    
      ' Save an instance of our application.
      Set oExcel = Application
      ' Create a new button on the standard CommandBar.
      Set oButton = oExcel.CommandBars("Standard").Controls.Add(msoControlButton)
      With oButton
        ' Set a tag for the button.
        .Tag = "My Button"
        ' Set the event to fire when the button is pressed.
        .OnAction = "!<" & AddInInst.ProgId & ">"
        ' Set the picture property -- if you are using the Mask property, this
        ' property must be set before you set the Mask property.
        .Picture = oPic
        ' Set the Mask property.
        .Mask = oMask
        ' Show the button.
        .Visible = True
      End With
    End Sub
    
    Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As _
       AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
    
       ' Delete the button.
       oButton.Delete
       ' Release references.
       Set oButton = Nothing
       Set oExcel = Nothing
     End Sub
    
    Private Sub oButton_Click(ByVal Ctrl As Office.CommandBarButton, _
      CancelDefault As Boolean)
      ' Our button was pressed.
      MsgBox "The button was pressed!"
    End Sub
    					
  6. Salve o projeto e criar o suplemento na pasta em que os bitmaps são armazenados.
  7. Inicie o Excel. Um novo controle com um círculo amarelo aparece no CommandBar padrão. Observe que a área ao redor o círculo amarelo transparente.

Observações adicionais

Como declarado anteriormente, a interface IPictureDisp não pode ser empacotada limites de processo. Tenta definir o resultado de fora de processo de propriedades de imagem e máscara no seguinte erro:
Erro em tempo de execução '-2147418113(8000ffff) ':
Falha do método 'Imagem' do objeto '_CommandBarButton'
Portanto, você não pode definir essas propriedades para um CommandBarButton partir de qualquer cliente de automação de processo ou um componente em processo que está sendo executado no modo de depuração do IDE do Visual Basic. Se você executar o exemplo de Add-in descrito neste artigo do IDE do Visual Basic, você receberá esse erro. Para evitar o erro durante a depuração, você pode comentar as linhas que definir as propriedades Picture e Mask ou usar compilação condicional, como um # If... Then... #Else diretiva.

Referências

Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
238228Como criar um Office 2000 suplemento COM no Visual Basic
230689EXEMPLO: Comaddin.exe Office 2000 suplemento escrito em Visual C++
150034PROBLEMA: LPPICTUREDISP não pode ser passada entre limites de processo
Para obter mais informações, consulte o seguinte site:
http://support.microsoft.com/ofd

Propriedades

ID do artigo: 286460 - Última revisão: segunda-feira, 29 de janeiro de 2007 - Revisão: 4.6
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Office FrontPage 2003
  • Microsoft FrontPage 2002 Standard Edition
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
Palavras-chave: 
kbmt kbautomation kbhowto KB286460 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 286460

Submeter comentários

 

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