• Domingo 22 de Diciembre de 2024, 21:19

Autor Tema:  Re: ¿Cómo desactivar la caja de controles de un MDI?  (Leído 1347 veces)

JOSE ANTONIO

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: ¿Cómo desactivar la caja de controles de un MDI?
« en: Viernes 25 de Abril de 2003, 08:25 »
0
Buenos días a tod@s. Mi duda es la siguiente. ¿Cómo puedo, en tiempo de diseño o en ejecución, inhabilitar o desactivar la caja de controles (maximizar, restaurar y cerrar ventana) de un formulario MDI?. MUCHAS GRACIAS.

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
¿Cómo desactivar la caja de controles de un MDI?
« Respuesta #1 en: Viernes 25 de Abril de 2003, 11:13 »
0
Con este código puedes deshabilitar todos los botones, incluso puedes evitar que tu formulario puedan cambiarlo de tamaño.

Option Explicit

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

'Constantes
Const SC_SIZE = &HF000
Const SC_MOVE = &HF010
Const SC_MINIMIZE = &HF020
Const SC_MAXIMIZE = &HF030
Const SC_CLOSE = &HF060
Const SC_RESTORE = &HF120

Const MF_SEPARATOR = &H800
Const MF_BYPOSITION = &H400
Const MF_BYCOMMAND = &H0

Private Sub MDIForm_Load()
    Dim hwnd&, hMenu&, Success&
    Dim i%
    hwnd = Me.hwnd
    hMenu = GetSystemMenu(hwnd, 0)
    'Quitar todos (va de 0 a 8)
    For i = 8 To 0 Step -1
        Success = DeleteMenu(hMenu, i, MF_BYPOSITION)
    Next
    Exit Sub
    'Usa esto para quitar los menús que te interesen:
    Success = DeleteMenu(hMenu, SC_SIZE, MF_BYCOMMAND)
    Success = DeleteMenu(hMenu, SC_MOVE, MF_BYCOMMAND)
    Success = DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
    'Success = DeleteMenu(hMenu, SC_MINIMIZE, MF_BYCOMMAND)
    'Success = DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND)
    'Success = DeleteMenu(hMenu, SC_RESTORE, MF_BYCOMMAND)
End Sub

Espero que te sirva de ayuda.

Saludos,
Roberto García
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid