RE:Como deshabilito la X del cierre del formulario
llama a esta funcion desde el load del formulario
Private Sub cmdDeshabilitar_Click()
' Deshabilitar el botón de cerrar el formulario
Dim hMenu As Long
'
hMenu = GetSystemMenu(hWND, 0)
' Deshabilitar el menú cerrar del formulario
Call ModifyMenu(hMenu, SC_CLOSE, MF_BYCOMMAND Or MF_GRAYED, -10, "Close")
'
' Si esta llamada se hace dentro del Form_Load,
' no es necesario redibujar los menús
' Redibujar los menús, para que se muestre deshabilitado
Call DrawMenuBar(hWND)
'
End Sub
en las declaraciones:
Private Declare Function GetSystemMenu Lib "user32" _
(ByVal hWND As Long, ByVal bRevert As Long) As Long
Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" _
(ByVal hMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long, ByVal wIDNewItem As Long, _
ByVal lpString As Any) As Long
Private Declare Function DrawMenuBar Lib "user32" _
(ByVal hWND As Long) As Long
Private Const MF_BYCOMMAND = &H0&
Private Const MF_ENABLED = &H0&
Private Const MF_GRAYED = &H1&
Private Const SC_CLOSE = &HF060&
Espero que te sirva