📄 clsedit.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 = "clsEdit"
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
' Window StyleEx
Private Const WS_EX_CLIENTEDGE = &H200
' Edit Style
Private Const ES_AUTOHSCROLL = &H80
' Edit Message
Private Const WM_GETTEXT = &HD
Private Const WM_SETTEXT = &HC
Private Const WM_GETTEXTLENGTH = &HE
Private Const EM_LIMITTEXT = &HC5
Private I As Long ' 句柄记数器
Private hEdit(66) As Long
Public Sub CreateEdit(hWndParent As Long, ID&, X&, Y&, nWidth&, nHeight&, Optional hWndFont As Long, Optional Style As Long, Optional MaxText As Long = 250)
hEdit(I) = CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", vbNullString, Style Or WS_CHILD _
Or WS_VISIBLE Or WS_TABSTOP Or ES_AUTOHSCROLL, X, Y, nWidth, nHeight, hWndParent, ID, App.hInstance, ByVal 0&)
Call SendMessage(hEdit(I), WM_SETFONT, hWndFont, 1)
Call SendMessage(hEdit(I), EM_LIMITTEXT, MaxText, 0)
I = I + 1
End Sub
Public Property Get Text(hDlg As Long, ID As Long) As String
Dim lpszText As String
Dim cchTextMax As Long
cchTextMax = SendDlgItemMessage(hDlg, ID, WM_GETTEXTLENGTH, 0, 0)
lpszText = String$(cchTextMax, 0)
Call GetDlgItemText(hDlg, ID, lpszText, 255)
Text = lpszText
End Property
Public Function SetEditText(hDlg As Long, ID As Long, strText As String)
Call SetDlgItemText(hDlg, ID, strText)
End Function
Public Property Get hWnd(ID As Long) As Long
hWnd = hEdit(ID)
End Property
Private Sub Class_Initialize()
I = 0
End Sub
Private Sub Class_Terminate()
' 破坏所有被创建的按钮
Dim N As Long
If hEdit(0) <> 0 Then
For N = 0 To I - 1
DestroyWindow hEdit(N)
hEdit(N) = 0
Next
End If
End Sub
' 后改用 GetDlgItemText
'Public Property Get Text(Optional hWndNumber As Long) As String
' Dim cchTextMax As Long
'cchTextMax = SendMessage(hEdit(hWndNumber), WM_GETTEXTLENGTH, 0, ByVal 0)
'Dim lpszText As String
'lpszText = String$(cchTextMax, 0)
' SendMessage hEdit(hWndNumber), WM_GETTEXT, (cchTextMax + 1), ByVal lpszText
' Debug.Print lpszText
' Text = lpszText
'End Property
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -