Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R 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.
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....
-
Solo tienes que tratar el mensaje WM_GETMINMAXINFO y con el cSubClass lo podes manejar muy facilmente
-
HOLA!!!
Ese codigo tiene 2 cosas mal a mi parecer...
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.
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!!!
-
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
-
Espectacular Cobein, pero no hay una manera de bloquear solo el mínimo.
-
si, los parametros son opcionales, podes pasar solo los 2 primeros para el minimo Call f_cMinSize.RestrictSize(Me.hwnd, 600, 400)