首页 /编程语言和算法/VB6/ASP
 VB6 禁止窗口的X,子程序 DisableX(Frm As Form)
昨天 22:30

新建From1(窗体),新建Command1(按钮CommandButton),代码:

Private Sub Command1_Click()
    Call DisableX(Form1)
End Sub

新建模块 modDisable.bas,代码:

'CALL IT LIKE THIS:
'Call DisableX(Enter Name Of Form Here)

Public Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long

Public Const MF_BYPOSITION = &H400&
Public Const MF_DISABLED = &H2&

Public Sub DisableX(Frm As Form)
    Dim hMenu As Long, nCount As Long
    hMenu = GetSystemMenu(Frm.hwnd, 0)
    nCount = GetMenuItemCount(hMenu)
    Call RemoveMenu(hMenu, nCount - 1, MF_DISABLED Or MF_BYPOSITION)

    DrawMenuBar Frm.hwnd
End Sub

运行结果,窗口的X就被禁止了。

 
全部回复(0)
首页 | 电脑版 |