Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
color de letra del boton
Enviado por mªjose el día 28 de noviembre de 2003
¿Como se cambia el color de letra del CommandButton? Pues mucho que busco no lo encuentro.
Te digo que el CommandButton no posee la propiedad Forecolor, por lo cual es imposible que cambies el color de la letra, aunque lo hagas desde la paleta de colores de VB.
En este caso, solo podras verlo en tiempo de diseño.
La solucion que podria darte es que crees una imagen con un buen fondo y con el color de letra que quieras.
Luego la pones que la propiedad Picture del command
Saludos...
Enviado por matamala el día 29 de noviembre de 2003
Hola amigos.
decir que es cierto que al command button no se le puede cambiar el color del texto, pero no sé si sabeis que exiten los Sherinad 3D controls, en los componentes qu son los mismo pero en 3D. y estos si t epermiten cambiarles el color de la fuente y algun que otro efecto visual más.
si no te aparece dicho controlen la lista de componentes, dale a la opción examinar y lo seleccionas.
está en :windows\system\ threed32.ocx.
espero haverte ayudado, un saludo .
Enviado por Baltasar el día 30 de noviembre de 2003
La propiedad Forecolor como tal no existe para los Commandbutton, pero como casi siempre, existen soluciones.
Una de ellas es el siguiente, eso sí, es un poco largo, pero si queremos botones con texto de colores, habrá que ponerlo.
Los Sheridan3D, como indica matamala, son otra solución y están preciosos.
Bueno, a lo que íbamos. hay que poner lo siguiente en un módulo:
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetParent Lib "user32" _
(ByVal hWnd As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Const GWL_WNDPROC = (-4)
Private Declare Function GetProp Lib "user32" Alias "GetPropA" _
(ByVal hWnd As Long, ByVal lpString As String) As Long
Private Declare Function SetProp Lib "user32" Alias "SetPropA" _
(ByVal hWnd As Long, ByVal lpString As String, _
ByVal hData As Long) As Long
Private Declare Function RemoveProp Lib "user32" Alias _
"RemovePropA" (ByVal hWnd As Long, _
ByVal lpString As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias _
"CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)
Private Type DRAWITEMSTRUCT
CtlType As Long
CtlID As Long
itemID As Long
itemAction As Long
itemState As Long
hwndItem As Long
hDC As Long
rcItem As RECT
itemData As Long
End Type
Private Declare Function GetWindowText Lib "user32" Alias _
"GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, _
ByVal cch As Long) As Long
Private Declare Function DrawText Lib "user32" Alias "DrawTextA" _
(ByVal hDC As Long, ByVal lpStr As String, ByVal nCount As Long, _
lpRect As RECT, ByVal wFormat As Long) As Long
Private Declare Function SetTextColor Lib "gdi32" (ByVal hDC As Long, _
ByVal crColor As Long) As Long
Private Declare Function SetBkMode Lib "gdi32" (ByVal hDC As Long, _
ByVal nBkMode As Long) As Long
Private Const TRANSPARENT = 1
If wMsg = WM_DRAWITEM Then
CopyMemory di, ByVal lParam, Len(di)
If di.CtlType = ODT_BUTTON Then
If GetProp(di.hwndItem, "VBTCustom") = 1 Then
DrawButton di.hwndItem, di.hDC, di.rcItem, _
di.itemState
End If
End If
ElseIf wMsg = WM_DESTROY Then
ExtButtonUnSubclass hWnd
End If
End Function
Private Sub DrawButton(ByVal hWnd As Long, ByVal hDC As Long, _
rct As RECT, ByVal nState As Long)
Hola a todos. Pues no, no me aparece el Sherinad 3D en la lista de componente, y voy a buscar el threed32.ocx y tampoco lo encuentro en la ubicación que me has indicado matamala. ¿Como se podria conseguir entonces?
Enviado por Baltasar el día 9 de diciembre de 2003
Tal vez no los estés usando de la forma apropiada:
Has de poner en un módulo (por si no lo sabes, en la zona donde agregas los formularios te da la opción de crear módulos) y dentro de ese módulo el código que expuse. Luego, cuando quieras cambiar el color del texto de algún botón haces:
SetButtonForecolor Command1.hWnd, RGB(255, 0, 0)
siendo Command1 el nombre del control, y rgb(255,0,0) el color elegido.
Tambien existe un ocx llamado Ariad interface component 1.3. .Se encuentra en C:\WINDOWS\system32\AS-IFce1.ocx
En el hay un control llamado asxToolBotton.
Se puede cambiar el color del texto con la propiedad que dice: "textcolor".
Enviado por calaceiro el día 11 de diciembre de 2003
nada, yo tb le he intentado, poniendo el codigo en un modulo y luego en el form_load del formulario poniendo setbuttonforecolor command1.hWnd, RGB (255, 0, 0) y tampoco se cambia. por que sera?¿
hola matamala, aqui de entrometido busque Sherinad 3D controls, claro el OCX en mi pc y no lo tengo, ojala ubiese la posibilidad de que me lo puedas enviar. De antemano gracias