Autor Tema: Bloquear tamaño Form cuando llegue a un tamaño especifico  (Leído 3881 veces)

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

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Bloquear tamaño Form cuando llegue a un tamaño especifico
« en: Abril 25, 2012, 03:45:50 pm »
Sí, asi como dice el titulo hay una manera de hacer esto de bloquear el tamaño del formulario cuando llegue a un tamaño especifico. Yo logro hacer así pero queda un parpadeo en el form como que sigue achicando. He visto que algunos programas como CCleaner cuando llega a un tamaño no tiene ese parpadeo, es muy poca cosa pero es por estética que quiero resolver esto.

Este es mi código.

Código: (VB) [Seleccionar]
Private Sub Form_Resize()
   
    If Me.WindowState = 1 Then
        'No hacer nada si se minimiza.
    ElseIf Me.Width <= 12000 Then
        Me.Width = 12050
    ElseIf Me.Height <= 9650 Then
        Me.Height = 9700
    Else
   
        picCentral.Left = Me.ScaleWidth - picCentral.Width - 100
        FrameF.Left = Me.ScaleWidth - FrameF.Width - 100
        FrameTitulos.Width = Me.ScaleWidth - 200
        LVentas.Width = Me.ScaleWidth - 2880
        LVentas.Height = Me.ScaleHeight - LVentas.Top - 2200
        LVentas.ColumnHeaders(2).Width = LVentas.Width - 6710
   
     End If
     
End Sub


Saludos....
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Bloquear tamaño Form cuando llegue a un tamaño especifico
« Respuesta #1 en: Abril 25, 2012, 08:58:55 pm »
Solo tienes que tratar el mensaje WM_GETMINMAXINFO y con el cSubClass lo podes manejar muy facilmente

79137913

  • Megabyte
  • ***
  • Mensajes: 185
  • Reputación: +21/-4
  • 4 Esquinas
    • Ver Perfil
    • Eco.Resumen Resumenes Cs. Economicas
Re:Bloquear tamaño Form cuando llegue a un tamaño especifico
« Respuesta #2 en: Abril 26, 2012, 08:10:47 am »
HOLA!!!

Ese codigo tiene 2 cosas mal a mi parecer...
Código: (vb) [Seleccionar]
   ElseIf Me.Width <= 12000 Then
        Me.Width = 12050
    ElseIf Me.Height <= 9650 Then
        Me.Height = 9700

Aca al modificar el width y el height haces que se vuelva a llamar al evento Form_Resize()

Y como lo estableces en un numero mayor al que establece tu condicion vuelve a modificarlos. deberias ponerle.
Código: (vb) [Seleccionar]
   ElseIf Me.Width < 12050 Then
        Me.Width = 12050
    ElseIf Me.Height < 9700 Then
        Me.Height = 9700

De esta manera cuando se ejecuten esas instrucciones y vuelva al evento resize no volvera a modificarlos.

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*                                                          Resumenes Cs.Economicas

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Bloquear tamaño Form cuando llegue a un tamaño especifico
« Respuesta #3 en: Abril 26, 2012, 09:51:55 am »
Hola, aca dejo la clase que uso normalmente, es un poco grande pero a mi me resulta practica.

http://www.2shared.com/file/_zAtv_i1/sizerestriction.html
« última modificación: Abril 26, 2012, 09:54:03 am por cobein »

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Bloquear tamaño Form cuando llegue a un tamaño especifico
« Respuesta #4 en: Abril 26, 2012, 12:32:34 pm »
Espectacular Cobein, pero no hay una manera de bloquear solo el mínimo.
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Bloquear tamaño Form cuando llegue a un tamaño especifico
« Respuesta #5 en: Abril 26, 2012, 12:38:23 pm »
si, los parametros son opcionales, podes pasar solo los 2 primeros para el minimo Call f_cMinSize.RestrictSize(Me.hwnd, 600, 400)