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

📄 clsedit.cls

📁 一个clock的 vb 源码
💻 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 + -