在系统菜单里加上自己的菜单项VB源码程序,程序员在编程的过程中可以参考学习使用,希望对IT程序员有用,此源码程序简单易懂、方便阅读,有很好的学习价值!
VERSION 5.00
Begin VB.Form Form1
BorderStyle = 1 'Fixed Single
Caption = "Form1"
ClientHeight = 2850
ClientLeft = 1980
ClientTop = 2670
ClientWidth = 5025
Icon = "Form1.frx":0000
LinkTopic = "Form1"
MaxButton = 0 'False
ScaleHeight = 2850
ScaleWidth = 5025
Begin VB.Label Label1
Caption = " 当右键单击窗口的标题栏时,会弹出系统预置的菜单,这个实例演示了如何在系统菜单里加上自己的菜单项,并可以恢复到原来的菜单。"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 855
Left = 480
TabIndex = 0
Top = 840
Width = 4215
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub Form_Load()
OldWindowProc = GetWindowLong(Form1.hwnd, GWL_WNDPROC)
' 取得窗口函数的地址
Call SetWindowLong(Form1.hwnd, GWL_WNDPROC, AddressOf SubClass1_WndMessage)
' 用SubClass1_WndMessage代替窗口函数处理消息
SysMenuHwnd = GetSystemMenu(Form1.hwnd, False)
Call AppendMenu(SysMenuHwnd, MF_SEPARATOR, 2000, vbNullString)
Call AppendMenu(SysMenuHwnd, MF_STRING, 2001, "关于本程序(&A)")
Call AppendMenu(SysMenuHwnd, MF_SEPARATOR, 2002, vbNullString)
Call AppendMenu(SysMenuHwnd, MF_STRING, 2003, "恢复系统菜单(&R)")
End Sub
Private Sub Form_Unload(Cancel As Integer)
If OldWindowProc <> GetWindowLong(Form1.hwnd, GWL_WNDPROC) Then
Call SetWindowLong(Form1.hwnd, GWL_WNDPROC, OldWindowProc)
End If
End Sub