Visual Basic - desactivar botones minimizar y maximizar

Life is soft - evento anual de software empresarial
 
Vista:

desactivar botones minimizar y maximizar

Publicado por egamonty (6 intervenciones) el 09/09/2003 18:55:01
necesito desactivar los botones de maximizar y minimizar de un formulario MDI pero en este tipo de formularios no exiten estaa propiedades, de que forma podría desactivarlos.

GRACIAS!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:desactivar botones minimizar y maximizar

Publicado por Juan (284 intervenciones) el 10/09/2003 12:57:44
Se puede hacer con funciones API, el único problema es que además de los botones, hay que eliminar los elementos de maximizar y minimizar del menu de sistema, ese que aparece cuando haces clic en el icono de la ventana al lado del título.

Pero todo tiene solución y eso último también se puede resolver con la API de windows. Te pondre un ejemplo en otro mensaje que en este seguramente ya no me cabe.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejemplo

Publicado por Juan (284 intervenciones) el 10/09/2003 12:59:01
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
' Funciones para cambiar el estilo
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Const GWL_STYLE = (-16)
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Const MF_BYPOSITION = &H400&
Private Sub MDIForm_Load()
Dim aux As Long
Dim hSysMenu As Long, nCnt As Long
' Elimina los botones
aux = GetWindowLong(Me.hwnd, GWL_STYLE)
SetWindowLong Me.hwnd, GWL_STYLE, aux Xor (WS_MAXIMIZEBOX Or WS_MINIMIZEBOX)
' Elimina los elementos en el menu
hSysMenu = GetSystemMenu(Me.hwnd, False)
If hSysMenu Then
nCnt = GetMenuItemCount(hSysMenu)
If nCnt Then
RemoveMenu hSysMenu, nCnt - 3, MF_BYPOSITION
RemoveMenu hSysMenu, nCnt - 4, MF_BYPOSITION
End If
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar