Como definir a máscara e propriedades da imagem para o Office XP CommandBars

Traduções de Artigos Traduções de Artigos
Artigo: 286460 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Microsoft Office XP inclui duas novas propriedades para o objecto CommandBarButton : as propriedades mask e Picture . Pode utilizar estas propriedades para colocar imagens em controlos de barra de comando gerado personalizado.

Nota Estas propriedades estão também disponíveis no Microsoft Office 2003.

Mais Informação

As propriedades mask e Picture são definidas como tipo IPictureDisp , que é um membro da biblioteca Stdole. IPictureDisp utiliza métodos que não podem ser organizados em limites de processos. Por este motivo, as propriedades mask e Picture só podem ser chamadas dentro de processo (macros VBA, automatização de suplementos e DLLs de ActiveX executado em processo). Consulte a secção "Referências" para mais informações sobre este comportamento.

O exemplo abaixo mostra como criar uma automatização suplemento que adiciona um botão de CommandBar com uma imagem de máscara.

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

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

    Reduzir esta imagemExpandir esta imagem
    Picture of sample Picture.bmp. Steps
				to re-create this image are given in this article.
  3. Guarde 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 controlo de CommandBar, as áreas a preto da máscara de estão visíveis, enquanto que as áreas brancas são transparentes.

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

Passos para criar AddIn COM


  1. Inicie o Visual Basic e crie um novo AddIn projecto.
  2. No menu projecto , clique em References . Se uma biblioteca de tipos "Microsoft Office" anterior à versão que XP está seleccionada, desmarque que a biblioteca de tipos e seleccione a biblioteca de tipos para o Microsoft Office XP. Clique em OK .
  3. No Explorador do projecto, clique com o botão direito do rato frmAddin e, em seguida, clique em Remover frmAddin .
  4. No Explorador de projecto, faça duplo clique no estruturador de ligar . Para a aplicação seleccione Microsoft Excel e, seleccione arranque para Comportamento de carregamento inicial .
  5. No menu Ver , clique em código e substitua o código para o 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. Guardar o projecto e criar o suplemento na pasta em que os mapas de bits são armazenados.
  7. Inicie o Excel. Aparece um novo controlo com um círculo amarelo no CommandBar padrão. Note que a área à volta do círculo amarelo é transparente.

notas adicionais

Como anteriormente estabelecida interface IPictureDisp não pode ser organizada em limites de processos. Tentativas para definir o resultado de out-of-process de propriedades de imagem e a máscara o seguinte erro:
Run-time error '-2147418113(8000ffff) ':
Método 'Imagem' do objecto '_CommandBarButton' falhou
Por conseguinte, não é possível definir estas propriedades para um CommandBarButton a partir de qualquer cliente de automatização de fora de processo ou de um componente em processo que esteja a utilizar o modo de depuração no IDE do Visual Basic. Se executar o exemplo Add-in descrito neste artigo a partir do IDE do Visual Basic, receberá esta mensagem de erro. Para evitar o erro durante a depuração, pode comentar as linhas que definir as propriedades Picture e a máscara ou utilizar compilação condicional, como, por exemplo, um #If... Then... #Else directiva.

Referências

Para obter informações adicionais, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
238228Como criar um Office 2000 COM suplemento no Visual Basic
230689EXEMPLO: Comaddin.exe Office 2000 COM suplemento escrita no Visual C++
150034PROBLEMA: LPPICTUREDISP não é possível ser transmitidos através de limites de processo
Para mais informações, consulte o seguinte Web site da Microsoft:
http://support.microsoft.com/ofd

Propriedades

Artigo: 286460 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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