VB之如何禁止x按钮

Option Explicit

 

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

Private Declare Function DrawMenuBar Lib "user32"_

(ByVal hwnd As Long) As Long

Private Const MF_BYPOSITION = &H400&

Private Const MF_REMOVE = &H1000&

Private Sub DisableX()

   Dim hMenu As Long

   Dim nCount As Long

   hMenu = GetSystemMenu(Me.hWnd, 0)

   nCount = GetMenuItemCount(hMenu)

   'Get rid of the Close menu and its separator

   Call RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)

   Call RemoveMenu(hMenu, nCount - 2, MF_REMOVE Or MF_BYPOSITION)

   'Make sure the screen updates

   'our change   DrawMenuBar Me.hWnd

End Sub

Private Sub Form_Load()

   DisableX

End Sub

Private Sub Form_Click()

'We need a way out, since the X button'doesn't work :-)

   Unload Me

End Sub

posted @ 2009-02-23 09:17  PSCWAY  阅读(210)  评论(0编辑  收藏  举报