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

📄 form1.frm

📁 用vb编的触摸屏软键盘源代码
💻 FRM
📖 第 1 页 / 共 3 页
字号:
   Begin VB.CommandButton 大写锁 
      BackColor       =   &H00D9A16F&
      Caption         =   "大写锁定"
      Height          =   800
      Left            =   0
      MouseIcon       =   "Form1.frx":3C13A
      MousePointer    =   99  'Custom
      Style           =   1  'Graphical
      TabIndex        =   4
      ToolTipText     =   "Capital Lock"
      Top             =   1605
      Width           =   1235
   End
   Begin VB.CommandButton 换档 
      BackColor       =   &H00D9A16F&
      Caption         =   "换档"
      Height          =   800
      Index           =   160
      Left            =   0
      MouseIcon       =   "Form1.frx":3CA04
      MousePointer    =   99  'Custom
      Style           =   1  'Graphical
      TabIndex        =   3
      ToolTipText     =   "Shift"
      Top             =   2400
      Width           =   1425
   End
   Begin VB.CommandButton 控制 
      BackColor       =   &H00D9A16F&
      Caption         =   "控制"
      Height          =   800
      Index           =   162
      Left            =   0
      MouseIcon       =   "Form1.frx":3D2CE
      MousePointer    =   99  'Custom
      Style           =   1  'Graphical
      TabIndex        =   2
      ToolTipText     =   "Control"
      Top             =   3210
      Width           =   1058
   End
   Begin VB.CommandButton 转换 
      BackColor       =   &H00D9A16F&
      Caption         =   "转换"
      Height          =   800
      Index           =   164
      Left            =   1980
      MouseIcon       =   "Form1.frx":3DB98
      MousePointer    =   99  'Custom
      Style           =   1  'Graphical
      TabIndex        =   1
      ToolTipText     =   "Alter"
      Top             =   3210
      Width           =   882
   End
   Begin VB.CommandButton 徽标 
      BackColor       =   &H00D9A16F&
      Caption         =   "徽标"
      Height          =   800
      Index           =   91
      Left            =   1087
      MouseIcon       =   "Form1.frx":3E462
      MousePointer    =   99  'Custom
      Style           =   1  'Graphical
      TabIndex        =   0
      ToolTipText     =   "Windows 徽标"
      Top             =   3210
      Width           =   882
   End
   Begin VB.Label 大写灯 
      Alignment       =   2  'Center
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "●"
      ForeColor       =   &H00FFC0C0&
      Height          =   180
      Left            =   10200
      TabIndex        =   51
      Top             =   3390
      Width           =   180
   End
   Begin VB.Label Label2 
      Alignment       =   2  'Center
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "大写灯"
      ForeColor       =   &H00FF8080&
      Height          =   180
      Left            =   10020
      TabIndex        =   50
      Top             =   3570
      Width           =   540
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Rem 转移输入焦点的声明
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Rem 窗口置顶的声明
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

Rem 移动没有标题栏窗体的声明
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Rem 模拟按键声明
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_CAPITAL = &H14
Rem 禁止本窗体拥有输入焦点的常数
Private Const HWND_NOTOPMOST = -2
Private Const WS_DISABLED = &H8000000
Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)

Rem 窗口置顶的常数
Private Const HWND_TOPMOST = -1
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_SHOWWINDOW = &H40

Rem 移动没有标题栏窗体的常数
Private Const HTCAPTION = 2
Private Const WM_NCLBUTTONDOWN = &HA1

Rem 模拟按钮常数
Private Const KEYEVENTF_KEYUP = &H2

Rem 以下是程序执行主体部分
Rem 窗体调用时置顶,且禁止拥有输入焦点
Private Sub Form_Load()
    Me.Show
    小写字母
    下档符号
    SKB(8).Caption = "退格" & Chr(10) & "←"
    SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
    SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_DISABLED
  
End Sub

Rem 鼠标移动到窗体上时,窗体置顶
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub

Rem 移动没有标题栏窗体,弹出快捷菜单


Rem 窗体重现时,设置其位置在屏幕中下方且置顶
Private Sub Form_Paint()
    SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
    Me.Left = Screen.Width / 2 - Me.Width / 2
    Me.Top = Screen.Height - Me.Height - 450
End Sub

Rem 防止执行多次
Private Sub Form_Initialize()
Dim KeyboardBuffer(256)     As Byte
GetKeyboardState KeyboardBuffer(0)
 If KeyboardBuffer(VK_CAPITAL) = 1 Then
 大写锁.BackColor = &HFF00&
        大写灯.ForeColor = &HFF00&
        
 End If
 
    If App.PrevInstance Then End
End Sub

Rem 弹出式快捷菜单项
Private Sub MnuAbout_Click()
    MsgBox "1.气球提示:鼠标指针指向某个键,停留片该,将会显示该键的英文全称或中文全称。" _
    & Chr(10) & "2.指法提示:鼠标指针的形状在每个键上都根据相应指法发生变化。" _
    & Chr(10) & "3.高亮提示:按下某个键时,该键会变得高亮;如果按下的是开关键,相应的指示灯也会变得高亮。" _
    & Chr(10) & "4.换档提示:当按下 Caps Lock 、Shift 、Num Lock 键时,相应的,大写字母、上档符号、小键盘数字会突出显示;" _
    & "反之, 当弹起 Caps Lock 、Shift 、Num Lock 键时,相应的,小写字母、下档符号、小键盘光标键会突出显示。" _
    & Chr(10) & "5.随手移动:在键盘背景处用鼠标拖动,可移动键盘。", , "关于仿 Microsoft 屏幕键盘"
End Sub
Private Sub MnuAuthor_Click()
    MsgBox "作者:蔡德玉" _
    & Chr(10) & "邮箱:cai_1001@163.com" _
    & Chr(10) & "地址:河南省焦作市万方铝业股份有限公司", , "作者信息"
End Sub
Private Sub MnuProgramme_Click()
    MsgBox "Microsoft(C) Visual Basic(R) 6.0", , "编程语言"
End Sub
Private Sub MnuEdition_Click()
    MsgBox "仿 Microsoft 屏幕键盘" & Chr(10) & "版本:1.0.5.0" & Chr(10) & "2008年08月30日13时14分15秒", , "版本信息"
End Sub

Rem 用控件数组向外部窗口发送按键信息
Private Sub SKB_Click(Index As Integer)
    keybd_event Index, 0, 0, 0
    keybd_event Index, 0, KEYEVENTF_KEYUP, 0
End Sub

Rem 获得焦点键高亮
Private Sub SKB_GotFocus(Index As Integer)
    SKB(Index).BackColor = &HFFE0&
End Sub
Private Sub SKB_LostFocus(Index As Integer)
    'SKB(Index).BackColor = vbWhite
    SKB(Index).BackColor = &HC0FFC0
End Sub

Rem 三个控制键盘灯的键
Private Sub 大写锁_Click()
    If 大写锁.BackColor = &HD9A16F Then
    
        大写锁.BackColor = &HFF00&
        大写灯.ForeColor = &HFF00&
        keybd_event 20, 0, 0, 0
        keybd_event 20, 0, KEYEVENTF_KEYUP, 0
    If 换档(160).BackColor = &HFFE0& Then
           小写字母
        Else
             大写字母
        End If
    Else
    
        大写锁.BackColor = &HD9A16F
        大写灯.ForeColor = &HD9A16F
        keybd_event 20, 0, 0, 0
        keybd_event 20, 0, KEYEVENTF_KEYUP, 0
    If 换档(160).BackColor = &HFFE0& Then
            大写字母
        Else
            小写字母
        End If
    End If
End Sub



Rem 四组成对的特殊键
Private Sub 控制_Click(Index As Integer)
    If 控制(Index).BackColor = &HD9A16F Then
        控制(Index).BackColor = &HFFE0&
        keybd_event Index, 0, 0, 0
    Else
        控制(Index).BackColor = &HD9A16F
        keybd_event Index, 0, KEYEVENTF_KEYUP, 0
    End If
End Sub

Private Sub 转换_Click(Index As Integer)
    If 转换(Index).BackColor = &HD9A16F Then
        转换(Index).BackColor = &HFFE0&
        keybd_event Index, 0, 0, 0
    Else
        转换(Index).BackColor = &HD9A16F
        keybd_event Index, 0, KEYEVENTF_KEYUP, 0
    End If
End Sub

Private Sub 徽标_Click(Index As Integer)
    If 徽标(Index).BackColor = &HD9A16F Then
        徽标(Index).BackColor = &HFFE0&
        keybd_event Index, 0, 0, 0
    Else
        徽标(Index).BackColor = &HD9A16F
        keybd_event Index, 0, KEYEVENTF_KEYUP, 0
    End If
End Sub

Private Sub 换档_Click(Index As Integer)
    If 换档(Index).BackColor = &HD9A16F Then
        换档(Index).BackColor = &HFFE0&
        keybd_event Index, 0, 0, 0
        上档符号
        If 大写灯.ForeColor = &HFFE0& Then
            小写字母
        Else
            大写字母
        End If
        
    Else
        换档(Index).BackColor = &HD9A16F
        keybd_event Index, 0, KEYEVENTF_KEYUP, 0
        下档符号
        If 大写灯.ForeColor = &HFFE0& Then
            大写字母
        Else
            小写字母
        End If
    End If
End Sub

Rem 弹出式快捷菜单键
Private Sub 快捷菜单_Click()
    keybd_event 93, 0, 0, 0
    keybd_event 93, 0, KEYEVENTF_KEYUP, 0
End Sub






Rem 自定义子函数,使子母键突出显示大写
Sub 大写字母()
    SKB(65).Caption = "A" & Chr(10) & "a"
    SKB(66).Caption = "B" & Chr(10) & "b"
    SKB(67).Caption = "C" & Chr(10) & "c"
    SKB(68).Caption = "D" & Chr(10) & "d"
    SKB(69).Caption = "E" & Chr(10) & "e"
    SKB(70).Caption = "F" & Chr(10) & "f"
    SKB(71).Caption = "G" & Chr(10) & "g"
    SKB(72).Caption = "H" & Chr(10) & "h"
    SKB(73).Caption = "I" & Chr(10) & "i"
    SKB(74).Caption = "J" & Chr(10) & "j"
    SKB(75).Caption = "K" & Chr(10) & "k"
    SKB(76).Caption = "L" & Chr(10) & "l"
    SKB(77).Caption = "M" & Chr(10) & "m"
    SKB(78).Caption = "N" & Chr(10) & "n"
    SKB(79).Caption = "O" & Chr(10) & "o"
    SKB(80).Caption = "P" & Chr(10) & "p"
    SKB(81).Caption = "Q" & Chr(10) & "q"
    SKB(82).Caption = "R" & Chr(10) & "r"
    SKB(83).Caption = "S" & Chr(10) & "s"
    SKB(84).Caption = "T" & Chr(10) & "t"
    SKB(85).Caption = "U" & Chr(10) & "u"
    SKB(86).Caption = "V" & Chr(10) & "v"
    SKB(87).Caption = "W" & Chr(10) & "w"
    SKB(88).Caption = "X" & Chr(10) & "x"
    SKB(89).Caption = "Y" & Chr(10) & "y"
    SKB(90).Caption = "Z" & Chr(10) & "z"
End Sub
Rem 自定义子函数,使子母键突出显示小写
Sub 小写字母()
    SKB(65).Caption = "A" & Chr(10) & "a"
    SKB(66).Caption = "B" & Chr(10) & "b"
    SKB(67).Caption = "C" & Chr(10) & "c"
    SKB(68).Caption = "D" & Chr(10) & "d"
    SKB(69).Caption = "E" & Chr(10) & "e"
    SKB(70).Caption = "F" & Chr(10) & "f"
    SKB(71).Caption = "G" & Chr(10) & "g"
    SKB(72).Caption = "H" & Chr(10) & "h"
    SKB(73).Caption = "I" & Chr(10) & "i"
    SKB(74).Caption = "J" & Chr(10) & "j"
    SKB(75).Caption = "K" & Chr(10) & "k"
    SKB(76).Caption = "L" & Chr(10) & "l"
    SKB(77).Caption = "M" & Chr(10) & "m"
    SKB(78).Caption = "N" & Chr(10) & "n"
    SKB(79).Caption = "O" & Chr(10) & "o"
    SKB(80).Caption = "P" & Chr(10) & "p"
    SKB(81).Caption = "Q" & Chr(10) & "q"
    SKB(82).Caption = "R" & Chr(10) & "r"
    SKB(83).Caption = "S" & Chr(10) & "s"
    SKB(84).Caption = "T" & Chr(10) & "t"
    SKB(85).Caption = "U" & Chr(10) & "u"
    SKB(86).Caption = "V" & Chr(10) & "v"
    SKB(87).Caption = "W" & Chr(10) & "w"
    SKB(88).Caption = "X" & Chr(10) & "x"
    SKB(89).Caption = "Y" & Chr(10) & "y"
    SKB(90).Caption = "Z" & Chr(10) & "z"
End Sub
Rem 自定义子函数,使运算符号突出显示上档
Sub 上档符号()
    SKB(48).Caption = ")" & Chr(10) & "0"
    SKB(49).Caption = "!" & Chr(10) & "1"
    SKB(50).Caption = "@" & Chr(10) & "2"
    SKB(51).Caption = "#" & Chr(10) & "3"
    SKB(52).Caption = "$" & Chr(10) & "4"
    SKB(53).Caption = "%" & Chr(10) & "5"
    SKB(54).Caption = "^" & Chr(10) & "6"
    SKB(55).Caption = "&" & Chr(10) & "7"
    SKB(56).Caption = "*" & Chr(10) & "8"
    SKB(57).Caption = "(" & Chr(10) & "9"
    SKB(186).Caption = ":" & Chr(10) & ";"
    SKB(187).Caption = "+" & Chr(10) & "="
    SKB(188).Caption = "<" & Chr(10) & ","
    SKB(189).Caption = "___" & Chr(10) & "-"
    SKB(190).Caption = ">" & Chr(10) & "."
    SKB(191).Caption = "?" & Chr(10) & "/"
    SKB(192).Caption = "~" & Chr(10) & "`"
    SKB(219).Caption = "{" & Chr(10) & "["
    SKB(220).Caption = "|" & Chr(10) & "\"
    SKB(221).Caption = "}" & Chr(10) & "]"
    SKB(222).Caption = "”" & Chr(10) & "'"
End Sub
Rem 自定义子函数,使运算符号突出显示下档
Sub 下档符号()
    SKB(48).Caption = ")" & Chr(10) & "0"
    SKB(49).Caption = "!" & Chr(10) & "1"
    SKB(50).Caption = "@" & Chr(10) & "2"
    SKB(51).Caption = "#" & Chr(10) & "3"
    SKB(52).Caption = "$" & Chr(10) & "4"
    SKB(53).Caption = "%" & Chr(10) & "5"
    SKB(54).Caption = "^" & Chr(10) & "6"
    SKB(55).Caption = "&&" & Chr(10) & "7"
    SKB(56).Caption = "*" & Chr(10) & "8"
    SKB(57).Caption = "(" & Chr(10) & "9"
    SKB(186).Caption = ":" & Chr(10) & ";"
    SKB(187).Caption = "+" & Chr(10) & "="
    SKB(188).Caption = "<" & Chr(10) & ","
    SKB(189).Caption = "__" & Chr(10) & "-"
    SKB(190).Caption = ">" & Chr(10) & "."
    SKB(191).Caption = "?" & Chr(10) & "/"
    SKB(192).Caption = "~" & Chr(10) & "`"
    SKB(219).Caption = "{" & Chr(10) & "["
    SKB(220).Caption = "|" & Chr(10) & "\"
    SKB(221).Caption = "}" & Chr(10) & "]"
    SKB(222).Caption = "″" & Chr(10) & "'"
End Sub


⌨️ 快捷键说明

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