Adapatar rutina para q funione con CHILDS Tengo un proyecto en Visual Basic 6 con un formulario MDI y los respectivos child y alguno q son formularios comunes...
El tema es q quiero sacar la x q cierra el formulario para q si o si tengan q hacer click en el boton salir para irse del mismo, ya q si apretas la x el formulario simpre se cierra independientemente de las validaciones q pueda poner en el form_unload...
Hecha la introducción paso a explicar...la rutina ya me la pasaron...el tema es q la rutina funciona en el formulario MDI y no funciona en los CHILD...como puedo adartar la rutina para q funcione de la misma manera en los formularios q dependen del MDI principal (inicio) es decir
los llamados CHILD o hijos... ¿?
La probe y lo q sucede es q no me carga el formulario...se ve el MDI y no me muestra el formulario al cual entro...
Por las dudas y para evitar confuciones repito la rutina q quiero adaptar para q funcione en los formularios CHILD dependientes de un MDI principal...
Option Explicit
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const GWL_STYLE = (-16)
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 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 Const MF_BYPOSITION = &H400&
Private Sub DesactivarMenu(frm As Form)
Dim hSysmenu As Long
hSysmenu = GetSystemMenu(frm.hwnd, 0)
RemoveMenu hSysmenu, 6, MF_BYPOSITION
RemoveMenu hSysmenu, 5, MF_BYPOSITION
RemoveMenu hSysmenu, 4, MF_BYPOSITION
RemoveMenu hSysmenu, 2, MF_BYPOSITION
RemoveMenu hSysmenu, 1, MF_BYPOSITION
End Sub
Private Sub MDIForm_Load()
Dim lRet As Long
lRet = GetWindowLong(Me.hwnd, GWL_STYLE)
lRet = lRet And Not (WS_MAXIMIZEBOX)
lRet = SetWindowLong(Me.hwnd, GWL_STYLE, lRet)
' Desactiva las opciones del menú del MDI (esq.superior izq)
DesactivarMenu Me
End Sub
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' para evitar cerrar el form si se pulsa Alt-F4
' así no se cierra nunca el form
If UnloadMode = 0 Then Cancel = True
End Sub
Private Sub MenuSalir_Click()
End
End Sub |