Hola!
Quizas esta pregunta es medio tonta, pero no he encontrado respuestas "rapidas" al tema (con rapidas me refiero a sencillas de implementar).
La idea es simple: Hay un label en un form. Cuando el form se redimensiona, el label hace lo mismo.
El problema es poder determinar el maximo tamaño de fuente que entra en el label redimensionado, sin que tenga problemas (osea, que se vea bien).
Alguien tiene alguna idea de como hacerlo ?
Saludos!
HOLA!!!
Busca AutoResCtrl en Google, el OCX hace todo por vos menos cambiar el tamaño de los hearders de un ListView o DBGrid
GRACIAS POR LEER!!!
Hice una clase hace poco donde tenía que hacer algo similar con api GetTextExtentPoint32() y GetClientRect():
http://foro.elhacker.net/programacion_visual_basic/src_clistboxmultialign_by_mr_frog_copy-t314001.0.html
Tambien mira esto:
Option Explicit
'=========================================================
' º Function : AlignCenterLBItem
' º Author : Mr.Frog ©
' º Mail : vbpsyke1@mixmail.com
' º Greets : LeandroA
' º Recommended Websites :
' http://visual-coders.com.ar
' http://InfrAngeluX.Sytes.Net
' http://twitter.com/#!/PsYkE1
'=========================================================
Public Function AlignCenterLBItem(myListbox As ListBox, ByVal sItem As String) As String
Dim lItemLen As Long
If Not (myListbox Is Nothing) Then
lItemLen = myListbox.Parent.TextWidth(sItem)
If lItemLen < myListbox.Width Then
AlignCenterLBItem = Space$(Abs(Int((Int(myListbox.Width - lItemLen) / 2) / myListbox.Parent.TextWidth(Space$(1)) - 1.5))) & sItem
End If
End If
End Function
Puedes relaccionar el tamaño del ListBox, con lo que ocupa un espacio... :rolleyes:
DoEvents! :P
Gracias 79137913 y Mr. Frog © por la info!
Puse el nombre del OCX en San Google y me tira 6 resultados de los cuales no hay nada (excepto este mismo port :P)
Despues, GetTextExtentPoint32 necesita hDC y los labels no tienen (tampoco Hwnd).
Voy a probar con TextWidth y TextHeight a ver si logro algo...
Saludos!
HOLA!!!
Descargar URL:
http://www.gigasize.com/get.php?d=qp05cs4opxc
Para usarlo pones el control en el formulario y en el Form_resize() esto:
Private Sub Form_Resize()
AutoResCtrl1.Resize Form1, 1
End Sub
GRACIAS POR LEER!!!
Creo que encontre una solucion "rapida"
Private Sub Form_Resize()
Dim Tam as Long
Label1.Width = Me.ScaleWidth
Label1.Height = Me.ScaleHeight
Label1.Top = 0
Label1.Left = 0
Tam = Me.ScaleY (Label1.Height, vbTwips, vbPixels)
Tam = Tam - ((Tam * 35) \ 100) 'Le saca el 35%
Label1.Font.Size = Tam
End Sub
La propiedad Aligment del Label esta en 2 (Center).
El tema es que es medio "a ojo".
De todas formas, voy a probar con el OCX...
Modificado
El OCX es genial! Pero el tamaño de la fuente de los labels es muy grande y hay veces en que no se ve...
Aun asi, redimensiona los objetos en forma espectacular... ;D
HOLA!!!
Yo uso siempre ese control, funciona con todos los controles basicos.
Mod: Fijate :AutoResCtrl1.Resize Form1, 1
el ",1" es si queres o no que redimensione las fuentes.
;)
GRACIAS POR LEER!!!