lx1.frm

来自「很好的教程原代码!」· FRM 代码 · 共 381 行

FRM
381
字号
VERSION 5.00
Begin VB.Form Form1 
   BorderStyle     =   0  'None
   Caption         =   "Form1"
   ClientHeight    =   1545
   ClientLeft      =   3870
   ClientTop       =   2745
   ClientWidth     =   2670
   FillStyle       =   2  'Horizontal Line
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   1545
   ScaleWidth      =   2670
   ShowInTaskbar   =   0   'False
   Begin VB.PictureBox Picture1 
      Height          =   345
      Left            =   20
      ScaleHeight     =   285
      ScaleWidth      =   2580
      TabIndex        =   8
      Top             =   30
      Width           =   2645
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   13
         Left            =   4080
         Picture         =   "lx1.frx":0000
         Style           =   1  'Graphical
         TabIndex        =   14
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   12
         Left            =   3780
         Picture         =   "lx1.frx":046A
         Style           =   1  'Graphical
         TabIndex        =   13
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   11
         Left            =   3480
         Picture         =   "lx1.frx":08D4
         Style           =   1  'Graphical
         TabIndex        =   12
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   10
         Left            =   3180
         Picture         =   "lx1.frx":0D3E
         Style           =   1  'Graphical
         TabIndex        =   11
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   9
         Left            =   2880
         Picture         =   "lx1.frx":11A8
         Style           =   1  'Graphical
         TabIndex        =   10
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Enabled         =   0   'False
         Height          =   300
         Index           =   8
         Left            =   2580
         Picture         =   "lx1.frx":1612
         Style           =   1  'Graphical
         TabIndex        =   9
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   7
         Left            =   2280
         Picture         =   "lx1.frx":1A7C
         Style           =   1  'Graphical
         TabIndex        =   7
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   6
         Left            =   1980
         Picture         =   "lx1.frx":1EE6
         Style           =   1  'Graphical
         TabIndex        =   6
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   5
         Left            =   1680
         Picture         =   "lx1.frx":2350
         Style           =   1  'Graphical
         TabIndex        =   5
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   4
         Left            =   1380
         Picture         =   "lx1.frx":27BA
         Style           =   1  'Graphical
         TabIndex        =   4
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   3
         Left            =   1080
         Picture         =   "lx1.frx":2C24
         Style           =   1  'Graphical
         TabIndex        =   3
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   2
         Left            =   780
         Picture         =   "lx1.frx":308E
         Style           =   1  'Graphical
         TabIndex        =   2
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   1
         Left            =   480
         Picture         =   "lx1.frx":34F8
         Style           =   1  'Graphical
         TabIndex        =   1
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.CommandButton Command1 
         Height          =   300
         Index           =   0
         Left            =   180
         Picture         =   "lx1.frx":392A
         Style           =   1  'Graphical
         TabIndex        =   0
         TabStop         =   0   'False
         Top             =   0
         Width           =   315
      End
      Begin VB.Image Image1 
         Height          =   300
         Left            =   10
         Picture         =   "lx1.frx":3D94
         Top             =   0
         Width           =   150
      End
   End
   Begin VB.Timer Timer2 
      Interval        =   1000
      Left            =   900
      Top             =   540
   End
   Begin VB.Timer Timer1 
      Left            =   420
      Top             =   540
   End
   Begin VB.Image Image2 
      Height          =   285
      Index           =   1
      Left            =   2040
      Picture         =   "lx1.frx":4056
      Top             =   1140
      Width           =   270
   End
   Begin VB.Image Image2 
      Height          =   285
      Index           =   0
      Left            =   1620
      Picture         =   "lx1.frx":44C0
      Top             =   1140
      Width           =   270
   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 GetCursorPos Lib "user32" _
    (lpPoint As POINTAPI) As Long

'获得窗口在屏幕坐标中的位置
Private Declare Function GetWindowRect Lib "user32" _
    (ByVal hwnd As Long, _
    lpRect As RECT) _
    As Long

'判断指定的点是否在指定的巨型内部
Private Declare Function PtInRect Lib "user32" _
    (lpRect As RECT, _
    ByVal ptx As Long, _
    ByVal pty As Long) _
    As Long

'准备用来使窗体始终在最前面
Private Declare Function SetWindowPos Lib "user32" _
    (ByVal hwnd As Long, _
    ByVal hWndInsertAfter As Long, _
    ByVal X As Long, _
    ByVal Y As Long, _
    ByVal cx As Long, _
    ByVal cy As Long, _
    ByVal wFlags _
    As Long) _
    As Long

'用来移动窗体
Private Declare Function MoveWindow Lib "user32" _
    (ByVal hwnd As Long, _
    ByVal X As Long, _
    ByVal Y As Long, _
    ByVal nWidth As Long, _
    ByVal nHeight As Long, _
    ByVal bRepaint As Long) _
    As Long

Const HWND_TOPMOST = -1
 
Private Type POINTAPI
        X As Long
        Y As Long
End Type

Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Private Is_Move_B As Boolean
'判断指针是否位于移动栏(本例中移动栏位于窗体的侧一小地方)
Private Is_Movestar_B As Boolean
'判断移动是否开始
Private MyRect As RECT
Private MyPoint As POINTAPI
Private Movex As Long, Movey As Long
'记录窗体移动前,窗体左上角与鼠标指针位置间的纵横距离
Private max As Long
'窗口变长以后的尺寸(用户可随意改动)

Private Sub Command1_Click(Index As Integer)
  Form1.SetFocus
  Select Case Index
     Case 0
         Form1.PopupMenu Form2.mnu_file, vbPopupMenuLeftAlign, 240, max - 30
     Case 1
     Case 7
         Command1(8).Enabled = Not Command1(8).Enabled
         If Command1(8).Enabled = True Then
             Command1(7).Picture = Image2(1).Picture
             Picture1.Width = 4455
             Form1.Width = Form1.Width + 1820
         Else
             Command1(7).Picture = Image2(0).Picture
             Picture1.Width = 2645
             Form1.Width = Form1.Width - 1820
         End If
         Line (0, 0)-(Form1.Width, Form1.Height), vbBlue, BF
         Get_Windows_Rect
     '......
     Case 13
         End
     '  .....
  End Select
End Sub

Private Sub Form_Load()
        Timer1.Interval = 50: Timer2.Interval = 1000
        Form1.BackColor = vbBlue
        Get_Windows_Rect
End Sub
Sub Get_Windows_Rect()
        Dim dl&
        max = 390
        Form1.Height = max
        Form1.Top = 0
        '窗体始终放在屏幕顶部
        dl& = GetWindowRect(Form1.hwnd, MyRect)
End Sub
Private Sub Form_Paint()
        '使窗体始终置于最前面
        If PtInRect(MyRect, MyPoint.X, MyPoint.Y) = 0 Then
             SetWindowPos Me.hwnd, HWND_TOPMOST, Me.Left / Screen.TwipsPerPixelX, _
                  Me.Top \ Screen.TwipsPerPixelY, Me.Width \ Screen.TwipsPerPixelX, _
                  Form1.Height \ Screen.TwipsPerPixelY, 0
        End If
End Sub

Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Is_Move_B Then
     Movex = MyPoint.X - MyRect.Left
     Movey = MyPoint.Y - MyRect.Top
     Is_Movestar_B = True
End If
End Sub

Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
       Dim dl&
       If Is_Movestar_B Then
            dl& = MoveWindow(Form1.hwnd, MyPoint.X - Movex, MyPoint.Y - Movey, _
                          MyRect.Right - MyRect.Left, MyRect.Bottom, -1)
       End If
End Sub

Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Get_Windows_Rect
    Is_Movestar_B = False
End Sub

Private Sub Timer1_Timer()
       Dim dl&
       dl& = GetCursorPos(MyPoint)
            If (PtInRect(MyRect, MyPoint.X, MyPoint.Y) And _
                     Form1.Height = max) Or MyPoint.Y <= 3 Then
                Form1.BackColor = vbBlue
                '窗体背景颜色(用户可随意改动)
                Form1.Height = max
                '判断鼠标指针是否位于窗体拖动区
                If MyPoint.X - MyRect.Left <= 10 Or Is_Movestar_B Then
                   Screen.MousePointer = 15
                   Is_Move_B = True
                Else
                   Screen.MousePointer = 0
                   Is_Move_B = False
                End If
            Else
               If Not Is_Movestar_B Then
                  Form1.Height = 30
                  '窗体变小
               End If
            End If
End Sub

Private Sub Timer2_Timer()
    Static color As Integer
    If color > 64 Then color = 0
    Line (0, 0)-(Form1.Width, Form1.Height), QBColor(color Mod 16), BF
    color = color + 15
End Sub

⌨️ 快捷键说明

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