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

📄 form1.frm

📁 完整的屏保
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form1 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Form1"
   ClientHeight    =   2790
   ClientLeft      =   5760
   ClientTop       =   3675
   ClientWidth     =   5490
   Icon            =   "Form1.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   ScaleHeight     =   2790
   ScaleWidth      =   5490
   Begin VB.Label Label1 
      Caption         =   $"Form1.frx":030A
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1095
      Left            =   120
      TabIndex        =   0
      Top             =   240
      Width           =   5055
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'-------------------------------------------
'          一个改变系统菜单的例子
'-------------------------------------------
'           洪恩在线  求知无限
'-------------------------------------------
'程序说明:
'系统菜单是点击窗体右上角图标时所弹出的菜单,这个
'菜单的选项一般是固定的,而本例通过API函数的调用
'改变了系统菜单的选项,在其中加入了新的菜单项。
'程序实现有两个关键:
'1、通过AppendMenu和GetSystemMenu两个API函数的
'应用,在系统菜单上添加项目;
'2、通过子类化窗体技术的应用,当我们点击添加的条
'时,能得到消息并做出响应。
'-------------------------------------------
Option Explicit



Private Sub Form_Load()
    
    OldWindowProc = GetWindowLong(Form1.hwnd, GWL_WNDPROC)
    ' 取得窗口函数的地址  标记 GWL_WNDPROC 表示要取得  该窗口的窗口函数的地址
    Call SetWindowLong(Form1.hwnd, GWL_WNDPROC, AddressOf WindowProc)
    ' 用 WindowProc函数 代替 窗口函数 处理消息,标记 GWL_WNDPROC 表示要设置 该窗口的窗口函数的地址
    ' 其实际效果是一旦操作系统向窗体发送消息,都会跳转到 WindowProc函数 中进行判断和处理
    
    '**********************这段文字要理解*******************************************
    '    这里要仔细理解一下,我们为窗体新指定了窗体函数地址,也就是说操作系统发送给窗体的
    '消息将被 WindowProc函数 所截获(而改变前消息是被默认的 窗体函数 所获得并作相应处理的)
    '    这样我们在 WindowProc函数 中对所截获的消息进行判断,会有三种情况:
    '<1>如果是需要通过程序来处理的消息就通过 WindowProc函数 中的相应语句处理;
    '<2>如果是要原来的 窗体函数 来处理则把这个消息传递给原窗体函数(其实是指针指向的改变);
    '<3>如果不是我们需要的消息,也传递给原 窗体函数 来处理。
    '*******************************************************************************
    
    '得到窗体的系统菜单的句柄
    SysMenuHwnd = GetSystemMenu(Form1.hwnd, False)
    
    '在系统菜单上添加条目,两个相关的函数DeleteMenu、ModifyMenu同样用来修改菜单项
    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


⌨️ 快捷键说明

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