查看: 13  |  回复: 0
  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就被禁止了。

您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2024 MaNongKu.com