📄 clsbutton.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "clsButton"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
Option Explicit
' 最多为 88 个 Button
' Button Style
Private I As Long ' 句柄记数器
Private Const BS_TEXT = &H0
Private hWndButton(88) As Long
Public Function CreateButton(hWnd As Long, strText As String, ID&, X&, Y&, nWidth&, nHeight&, Optional hWndFont As Long, Optional Style As Long)
' 功能:创建按钮
' 参数:(hWnd 父窗口的句柄,strText 按钮文字,ID 控制 ID,X 横坐标,Y 竖坐标)
' 参数:(nWidth 按钮宽度,nHeight 按钮高度,hWndFont 字体的句柄,Style 按钮风格)
hWndButton(I) = CreateWindowEx(0&, "BUTTON", strText, Style Or WS_CHILD Or WS_VISIBLE _
Or WS_TABSTOP Or BS_TEXT, X, Y, nWidth, nHeight, hWnd, ID, App.hInstance, 0)
Call SendMessage(hWndButton(I), WM_SETFONT, hWndFont, ByVal 0)
I = I + 1
End Function
Public Property Get hWnd(hWndNumber As Long) As Long
' 功能:返回按钮句柄(注意:第一个按钮的句柄数为 0)
' 返回按钮的句柄(句柄记数器)
hWnd = hWndButton(hWndNumber)
End Property
Public Function GetButtonState(hDlg As Long, ID As Long) As Integer
' 功能:判断按钮的状态
' 参数:(hDlg 为对话框句柄,ID 为控制 ID)
If IsDlgButtonChecked(hDlg, ID) = BST_CHECKED Then
GetButtonState = 1
Else
GetButtonState = 0
End If
End Function
Public Function SetButtonState(hDlg As Long, ID As Long, State As Long) As Long
Call SendDlgItemMessage(hDlg, ID, BM_SETCHECK, State, 0)
End Function
Private Sub Class_Initialize()
' 初始句柄记数器
I = 0
End Sub
Private Sub Class_Terminate()
' 破坏所有被创建的按钮
Dim N As Long
If hWndButton(0) <> 0 Then
For N = 0 To I - 1
DestroyWindow hWndButton(N)
hWndButton(N) = 0
Next
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -