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

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.

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
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
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.

    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.

    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 ExplicitDim oExcel As ObjectDim WithEvents oButton As Office.CommandBarButtonPrivate 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 WithEnd SubPrivate 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 SubPrivate 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:
imagem de máscara de ipicturedisp suplemento

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 286460 - Última Revisão: 12/06/2015 00:09:11 - Revisão: 4.6

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

  • kbnosurvey kbarchive kbmt kbautomation kbhowto KB286460 KbMtpt
Comentários