Cómo agregar botones de barra de herramientas personalizados y operaciones relacionadas en documentos BOS
Primero, haga clic derecho en el documento comercial y seleccione "Gestión de operaciones" en el menú emergente.
Aparecerá la siguiente interfaz:
Haga clic en el botón "Examinar" para seleccionar el icono, el cual debe estar en formato ico, 16×16, 256 colores.
El segundo método consiste en escribir código en el evento m_BillInterface_MenuBarInitialize del complemento.
Sub privada m_BillInterface_MenuBarInitialize(ByVal oMenuBar como K3ClassEvents.MenuBar)
Atenuar oTool? Como K3ClassEvents.BOSTool
Atenuar oBand? Como K3ClassEvents.BOSBand
'****************** Comience a agregar un nuevo menú BOS***************
' Agregue el objeto de menú mnuChangePassword y establezca las propiedades
Set oTool = oMenuBar.BOSTools.Add("mnuChangePassword")
Con oTool
.Caption = "Establezca tarjeta de membresía contraseña "
.ToolTipText = "Establecer contraseña de tarjeta de membresía"
.Description = "Contraseña"
.ShortcutKey = 0
. Visible = True
.Enabled = True
.BeginGroup = True
.ToolPicture = "Ruta completa a su archivo de icono"
0, vbWhite
End With
El segundo método es más flexible, pero hay un problema: cuando se lance el complemento, el cliente no tendrá el ícono. que configuró, lo que hace que los botones de la barra de herramientas queden en blanco. Por lo tanto, lo que debemos resolver es integrar el archivo de icono en el complemento y seguir el complemento.
Entonces la mejor manera es utilizar archivos de recursos.
Entonces el ícono se empaqueta en el archivo de recursos y el código se modifica de la siguiente manera:
Con oTool
.Caption = "Establecer contraseña de tarjeta de membresía"
.ToolTipText = "Establecer contraseña de tarjeta de membresía"
.Description = "Contraseña"
.ShortcutKey = 0
.Visible = Verdadero
.Enabled = Verdadero
.BeginGroup = Verdadero
.ToolPicture = LoadResPicture(1003, 1)
.SetPicture ?0 , vbWhite
End With
Ahora compila y ejecuta, y descubre que todavía está en blanco. ¿No se cargan los recursos? Después de la prueba, ?LoadResPicture(1003, 1) efectivamente leyó el ícono, pero la barra de herramientas del BOS no lo reconoció.
Mirando detenidamente el código original, .ToolPicture = "ruta completa a su archivo de icono", encontré un problema. ToolPicture es en realidad una cadena, mientras que ?LoadResPicture(1003, 1) devuelve una imagen y el tipo de datos es inconsistente.
Continúe realizando los siguientes cambios:
Con oTool
.Caption = "Establecer contraseña de tarjeta de membresía"
.ToolTipText = "Establecer contraseña de tarjeta de membresía"
.Description = "Contraseña"
.ShortcutKey = 0
.Visible = True
.Enabled = True
.BeginGroup = True
.SetPicture2 LoadResPicture(1003, 1), 0, vbWhite
Finalizar con
La prueba tuvo éxito.
Observaciones: 1. El uso de SetPicture2 puede superar la limitación de utilizar únicamente el formato ico. En este ejemplo, utilicé recursos en formato bmp.
2. Debido a que los formatos ico y BMP de VB6 no pueden usar colores verdaderos, puede colocar materiales de colores verdaderos en recursos personalizados y luego liberarlos para su uso, lo que supera aún más el límite de 256 colores.
3. El parámetro vbWhite se refiere a MaskColor, que puede lograr un procesamiento transparente. Por ejemplo, el color de fondo de mis archivos bmp es todo blanco, así que lo configuré en vbWhite, lo que logra el efecto de transparencia que se muestra en la imagen de arriba; de lo contrario, se mostrará el fondo blanco