Cómo configurar las propiedades de imagen y máscara para Office XP CommandBars

Seleccione idioma Seleccione idioma
Id. de artículo: 286460 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Microsoft Office XP presenta dos nuevas propiedades del objeto CommandBarButton : las propiedades de máscara y la imagen . Puede utilizar estas propiedades para colocar imágenes en controles de barra de comandos generado personalizados.

Nota Estas propiedades también están disponibles en Microsoft Office 2003.

Más información

Las propiedades de máscara y la imagen se definen como tipo IPictureDisp , que es un miembro de la biblioteca Stdole. IPictureDisp utiliza los métodos que no pueden calcularse a través de límites de proceso. Por lo tanto, las propiedades de máscara y la imagen sólo pueden invocarse en proceso (macros de VBA, automatización de complementos y archivos DLL de ActiveX ejecutarla en proceso). Consulte la sección "Referencias" para obtener más información sobre este comportamiento.

El ejemplo siguiente muestra cómo crear un complemento de automatización que agrega un botón CommandBar con una imagen enmascarada.

Pasos para crear imágenes de la imagen y la máscara

  1. Inicie Microsoft Paint. En el menú imagen , haga clic en atributos . Cambiar el tamaño de imagen a 32 x 32 y haga clic en Aceptar .
  2. Dibujar una imagen de color amarilla en la superficie de dibujo. Rellenar el área que rodea el círculo azul.

    Contraer esta imagenAmpliar esta imagen
    Picture of sample Picture.bmp. Steps
				to re-create this image are given in this article.
  3. Guardar la imagen como Circle.bmp.
  4. Para crear la máscara, llene el círculo negro y rellenar el área fuera del círculo con en blanco. Cuando se agrega la imagen con la máscara al control CommandBar, las áreas de negras de la máscara son visibles, mientras que las áreas blancas son transparentes.

    Contraer esta imagenAmpliar esta imagen
    Picture of sample Mask.bmp. Steps to
				re-create this image are given in this article.
  5. Guardar la imagen como Mask.bmp.

Pasos para crear el complemento COM


  1. Inicie Visual Basic y cree un complemento nuevo proyecto.
  2. En el menú proyecto , haga clic en referencias . Si una biblioteca tipo de "Microsoft Office" anteriores a la versión que XP está seleccionada, desactive esa biblioteca de tipo y seleccione la biblioteca de tipo para Microsoft Office XP. Haga clic en Aceptar .
  3. En el Explorador de proyectos, haga clic con el botón secundario del mouse en frmAddin y haga clic en Quitar frmAddin .
  4. En el Explorador de proyectos, haga doble clic en el Diseñador de Conectar . Para la aplicación seleccione Microsoft Excel y comportamiento de carga inicial , seleccione Inicio .
  5. En el menú Ver , haga clic en código y reemplace el código para la agregar - en con:
    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. Guarde el proyecto y genere el complemento en la carpeta en la que se almacenan los mapas de bits.
  7. Inicie Excel. Un control nuevo con un círculo amarillo aparece en el control CommandBar estándar. Observe que el área alrededor del círculo amarillo transparente.

notas adicionales

Como se ha indicado anteriormente, la interfaz IPictureDisp no puede calcularse a través de límites de proceso. Se intenta establecer el resultado de fuera de proceso de las propiedades de imagen y máscara en el siguiente error:
Error en tiempo de ejecución '-2147418113(8000ffff) ':
Error del método "Imagen" del objeto '_CommandBarButton'
Por lo tanto, no se puede establecer estas propiedades para un CommandBarButton desde cualquier cliente de automatización fuera de proceso o desde un componente en el proceso que se está ejecutando en modo de depuración en el IDE de Visual Basic. Si ejecutar el ejemplo de descrito en este artículo desde el IDE de Visual Basic, recibirá este error. Para evitar el error durante la depuración, puede comentar las líneas que establecer las propiedades de imagen y máscara o utilizan compilación condicional, como un # If... Then... # Else directiva.

Referencias

Para obtener información adicional, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
238228Cómo crear un Office 2000 COM Add-in en Visual Basic
230689EJEMPLO: Comaddin.exe Office 2000 complemento COM escrito en C++
150034PRB: LPPICTUREDISP no se pasan a través de límites de proceso
Para obtener más información, visite el siguiente sitio Web de Microsoft:
http://support.microsoft.com/ofd

Propiedades

Id. de artículo: 286460 - Última revisión: lunes, 29 de enero de 2007 - Versión: 4.6
La información de este artículo se refiere 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
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
Palabras clave: 
kbmt kbautomation kbhowto KB286460 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 286460

Enviar comentarios

 

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