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

Ha finalizado el soporte técnico para Office 2003

Microsoft puso fin al soporte técnico para Office 2003 el 8 de abril de 2014. Este cambio ha afectado a las actualizaciones de software y las opciones de seguridad. Sepa qué significa esto en su caso y cómo puede mantenerse protegido.

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
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
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.

    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.

    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 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. 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:
imagen de máscara ipicturedisp de complemento

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 286460 - Última revisión: 12/06/2015 00:09:06 - Revisión: 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, Microsoft Office PowerPoint 2003, Microsoft PowerPoint 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbautomation kbhowto KB286460 KbMtes
Comentarios