⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 很好的教程原代码!
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   3195
   ClientLeft      =   165
   ClientTop       =   735
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   3195
   ScaleWidth      =   4680
   StartUpPosition =   3  'Windows Default
   Begin VB.Menu mnuExit 
      Caption         =   "退出"
   End
   Begin VB.Menu mnuSysNew 
      Caption         =   "新菜单"
      Begin VB.Menu mnuNew1 
         Caption         =   "新菜单1"
      End
      Begin VB.Menu mnuNew2 
         Caption         =   "新菜单2"
      End
      Begin VB.Menu mnuNew3 
         Caption         =   "新菜单3"
      End
      Begin VB.Menu mnuNew4 
         Caption         =   "新菜单4"
      End
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" _
    (ByVal hMenu As Long, _
    ByVal nPos As Long _
    ) As Long
Private Declare Function GetMenuItemID Lib "user32" _
    (ByVal hMenu As Long, _
    ByVal nPos As Long _
    ) As Long
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 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 InsertMenu Lib "user32" Alias "InsertMenuA" _
    (ByVal hMenu As Long, _
    ByVal nPosition As Long, _
    ByVal wFlags As Long, _
    ByVal wIDNewItem As Long, _
    ByVal lpNewItem As Any _
    ) As Long
Private Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" _
    (ByVal hMenu As Long, _
    ByVal wIDItem As Long, _
    ByVal lpString As String, _
    ByVal nMaxCount As Long, _
    ByVal wFlag As Long _
    ) As Long

Private Const MF_BYCOMMAND = &H0&
Private Const MF_BYPOSITION = &H400&
Private Const MF_CHANGE = &H80&
Private Const MF_REMOVE = &H1000&
'子过程
'除去系统菜单中旧的菜单项
Private Sub RemoveOldMenu()
    Dim hSysMenu As Long
    Dim nCnt As Long
    hSysMenu = GetSystemMenu(Me.hwnd, False)
    If hSysMenu Then
        ' 取得系统菜单中的数量
        nCnt = GetMenuItemCount(hSysMenu)
        If nCnt Then
            Dim i As Integer
            ' 编号 (0, 1, 2, 3...)
            For i = nCnt - 2 To 0 Step -1  '第一项不除去
                RemoveMenu hSysMenu, i, MF_BYPOSITION Or MF_REMOVE
            Next i
        End If
    End If
End Sub
'插入新的菜单项
Private Sub InsertMyMenu()
    Dim hSysMenu As Long
    Dim hMenu As Long
    Dim hSubMenu As Long
    Dim hMenuID As Long
    Dim sMenuString As String
    Dim nCnt As Integer
    sMenuString = Space(20)
    hSysMenu = GetSystemMenu(Me.hwnd, False)  '获得系统菜单句柄
    hMenu = GetMenu(Me.hwnd)    '获得窗体菜单句柄
    hSubMenu = GetSubMenu(hMenu, 1)  '获得子菜单句柄
    For nCnt = 0 To 3
        hMenuID = GetMenuItemID(hSubMenu, nCnt)  '获得菜单ID号
        GetMenuString hSubMenu, nCnt, sMenuString, Len(sMenuString), MF_BYPOSITION   '获得菜单的标题
        If nCnt = 0 Then
            '第一项菜单项没有去掉,用修改函数
            ModifyMenu hSysMenu, nCnt, MF_BYPOSITION, hMenuID, sMenuString
        Else
            '其它项用插入函数
            InsertMenu hSysMenu, nCnt, MF_BYPOSITION, hMenuID, sMenuString
        End If
    Next nCnt
End Sub
Private Sub Form_Load()
    Call RemoveOldMenu
    Call InsertMyMenu
End Sub
Private Sub mnuExit_Click()
    Unload Me
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -