[SOLUCIONADO] Aumentar/reducir tamaño de fuente en label

Iniciado por MCKSys Argentina, 12 Enero 2011, 14:38 PM

0 Miembros y 1 Visitante están viendo este tema.

MCKSys Argentina

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!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


79137913

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!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

Psyke1

#2
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:
Código (vb) [Seleccionar]
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

MCKSys Argentina

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!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


79137913

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:
Código (vb) [Seleccionar]
Private Sub Form_Resize()
AutoResCtrl1.Resize Form1, 1
End Sub


GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

MCKSys Argentina

#5
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
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


79137913

#6
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!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*