Formulario MDI
Publicado por Elena (11 intervenciones) el 23/06/2008 18:10:20
Hola, estoy haciendo una aplicación que tiene como formulario principal un formulario MDI, e intento eliminar los botones de minimizar, maximizar y cerrar, ya que no quiero que la apliación pueda controlarse desde ahí, pero todo lo que pruebo me da errores. El código que tengo hasta ahora es este.
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
Const ws_minimizebox = &H20000
Const ws_maximizebox = &H10000
Const gwl_style = (-16)
Const mf_byposition = &H400
Const mf_remove = &H1000
Private Declare Function drawmenubar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function getmenuitemcount Lib "user32" (ByVal hmenu As Long) As Long
Private Declare Function getsystemmenu Lib "user32" (ByVal hwnd As Long, ByVal brevert As Long) As Long
Private Declare Function removemenu Lib "user32" (ByVal hmenu As Long, ByVal nposition As Long, ByVal wflags As Long) As Long
Private Sub mdiform_load()
Dim l As Long
Dim hmenu As Long
Dim menuitemcount As Long
'Para que no se vean los botones
l = getwindowlong(Me.hwnd, gwl_style)
l = l And Not (ws_minimizebox)
l = l And Not (ws_maximizebox)
l = setwindowlong(Me.hwnd, gwl_style, l)
'Para quitar las opciones de menú
hmenu = getsystemmenu(Me.hwnd, 0)
If hmenu Then
Call removemenu(hmenu, 2, mf_remove Or mf_byposition)
Call removemenu(hmenu, 2, mf_remove Or mf_byposition)
Call removemenu(hmenu, 2, mf_remove Or mf_byposition)
Call drawmenubar(Me.hwnd)
End If
End Sub
¿Alguna ayuda?... gracias por adelantado.
ELENA
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
Const ws_minimizebox = &H20000
Const ws_maximizebox = &H10000
Const gwl_style = (-16)
Const mf_byposition = &H400
Const mf_remove = &H1000
Private Declare Function drawmenubar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function getmenuitemcount Lib "user32" (ByVal hmenu As Long) As Long
Private Declare Function getsystemmenu Lib "user32" (ByVal hwnd As Long, ByVal brevert As Long) As Long
Private Declare Function removemenu Lib "user32" (ByVal hmenu As Long, ByVal nposition As Long, ByVal wflags As Long) As Long
Private Sub mdiform_load()
Dim l As Long
Dim hmenu As Long
Dim menuitemcount As Long
'Para que no se vean los botones
l = getwindowlong(Me.hwnd, gwl_style)
l = l And Not (ws_minimizebox)
l = l And Not (ws_maximizebox)
l = setwindowlong(Me.hwnd, gwl_style, l)
'Para quitar las opciones de menú
hmenu = getsystemmenu(Me.hwnd, 0)
If hmenu Then
Call removemenu(hmenu, 2, mf_remove Or mf_byposition)
Call removemenu(hmenu, 2, mf_remove Or mf_byposition)
Call removemenu(hmenu, 2, mf_remove Or mf_byposition)
Call drawmenubar(Me.hwnd)
End If
End Sub
¿Alguna ayuda?... gracias por adelantado.
ELENA
Valora esta pregunta


0