
Private Declare Function GetSystemMenu()Function GetSystemMenu Lib "User32" (ByVal hwnd As Integer, ByVal bRevert As Long) As Integer

Private Declare Function RemoveMenu()Function RemoveMenu Lib "User32" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer

Private Declare Function DrawMenuBar()Function DrawMenuBar Lib "User32" (ByVal hwnd As Integer) As Integer

Private Declare Function GetMenuItemCount()Function GetMenuItemCount Lib "User32" (ByVal hMenu As Integer) As Integer
Private Const MF_BYPOSITION = &H400&
Private Const MF_DISABLED = &H2&


Private Sub disableX()Sub disableX(ByVal wnd As Form)
Dim hMenu As Integer, nCount As Integer
'得到系统Menu
hMenu = GetSystemMenu(wnd.Handle.ToInt32, 0)
'得到系统Menu的个数
nCount = GetMenuItemCount(hMenu)
'去除系统Menu
Call RemoveMenu(hMenu, nCount - 1, MF_BYPOSITION Or MF_DISABLED)
'重画MenuBar
DrawMenuBar(Me.Handle.ToInt32)
End Sub

Private Sub login_Load()Sub login_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
disableX(Me)
End Sub
本文介绍了一种使用Visual Basic编程禁用窗体关闭按钮的方法。通过调用Windows API函数GetSystemMenu、RemoveMenu和DrawMenuBar,可以隐藏或禁用窗体右上角的关闭(X)按钮。

9666

被折叠的 条评论
为什么被折叠?



