Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: MCKSys Argentina en 12 Enero 2011, 14:38 pm



Título: [SOLUCIONADO] Aumentar/reducir tamaño de fuente en label
Publicado por: MCKSys Argentina en 12 Enero 2011, 14:38 pm
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!


Título: Re: Aumentar/reducir tamaño de fuente en label
Publicado por: 79137913 en 12 Enero 2011, 14:52 pm
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!!!


Título: Re: Aumentar/reducir tamaño de fuente en label
Publicado por: Psyke1 en 12 Enero 2011, 15:20 pm
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
  1. Option Explicit
  2. '=========================================================
  3. ' º Function : AlignCenterLBItem
  4. ' º Author   : Mr.Frog ©
  5. ' º Mail     : vbpsyke1@mixmail.com
  6. ' º Greets   : LeandroA
  7. ' º Recommended Websites :
  8. '       http://visual-coders.com.ar
  9. '       http://InfrAngeluX.Sytes.Net
  10. '       http://twitter.com/#!/PsYkE1
  11. '=========================================================
  12.  
  13. Public Function AlignCenterLBItem(myListbox As ListBox, ByVal sItem As String) As String
  14. Dim lItemLen                                           As Long
  15.    If Not (myListbox Is Nothing) Then
  16.        lItemLen = myListbox.Parent.TextWidth(sItem)
  17.        If lItemLen < myListbox.Width Then
  18.            AlignCenterLBItem = Space$(Abs(Int((Int(myListbox.Width - lItemLen) / 2) / myListbox.Parent.TextWidth(Space$(1)) - 1.5))) & sItem
  19.        End If
  20.    End If
  21. End Function
Puedes relaccionar el tamaño del ListBox, con lo que ocupa un espacio... :rolleyes:

DoEvents! :P


Título: Re: Aumentar/reducir tamaño de fuente en label
Publicado por: MCKSys Argentina en 12 Enero 2011, 15:26 pm
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!


Título: Re: Aumentar/reducir tamaño de fuente en label
Publicado por: 79137913 en 12 Enero 2011, 15:32 pm
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
  1. Private Sub Form_Resize()
  2. AutoResCtrl1.Resize Form1, 1
  3. End Sub

GRACIAS POR LEER!!!


Título: Re: Aumentar/reducir tamaño de fuente en label
Publicado por: MCKSys Argentina en 12 Enero 2011, 15:38 pm
Creo que encontre una solucion "rapida"

Código:
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


Título: Re: Aumentar/reducir tamaño de fuente en label
Publicado por: 79137913 en 12 Enero 2011, 15:54 pm
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!!!