SelLength、SelStart、SelText 属性
SelLength-返回或设置所选择的字符数。
SelStart-返回或设置所选择的文本的起始点;如果没有文本被选中,则指出插入点的位置。
SelText-返回或设置包含当前所选择文本的字符串;如果没有字符被选中,则为零长度字符串 ("")。
这些属性在设计时是不可用的。语法object.SelLength [= number]object.SelStart [= index]object.SelText [= value]
SelLength-返回或设置所选择的字符数。
SelStart-返回或设置所选择的文本的起始点;如果没有文本被选中,则指出插入点的位置。
SelText-返回或设置包含当前所选择文本的字符串;如果没有字符被选中,则为零长度字符串 ("")。
这些属性在设计时是不可用的。语法object.SelLength [= number]object.SelStart [= index]object.SelText [= value]
Private Type POINTAPI
x As Long
y As Long
End Type
Dim Pos As POINTAPI
Dim hResult As Long
Dim hNow As Long
Dim hLength As Long
Dim bArr() As Byte, bArr2() As Byte
Private Const WM_GETTEXT = &HD
Private Const WM_GETTEXTLENGTH = &HE
Private Declare Sub RtlMoveMemory Lib ″KERNEL32″ (lpvDest As Any, lpvSource As Any, ByVal cbCopy 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 LongPrivate Declare Function WindowFromPoint Lib ″user32″ (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetCursorPos Lib ″user32″ (lpPoint As POINTAPI) As Long′获取文本的函数
Function GetText(ByVal hWndNow As Long) As String
′获取文本长度
hLength = SendMessage(hWndNow, WM_GETTEXTLENGTH, 0, 0)
If hLength > 0 Then
′设置缓冲区
ReDim bArr(hLength + 1) As Byte, bArr2(hLength - 1) As Byte
Call RtlMoveMemory(bArr(0), hLength, 2)
′发送 WM_GETTEXT 消息
Call SendMessage(hWndNow, WM_GETTEXT, hLength + 1, bArr(0))
Call RtlMoveMemory(bArr2(0), bArr(0), hLength)
′得到文本
GetText = StrConv(bArr2, vbUnicode)
Else
GetText = ″″
End If
End Function
′开始获取文本
Private Sub CmdStart_Click()
Tim.Enabled = True
End Sub
′停止获取文本
Private Sub CmdStop_Click()
Tim.Enabled = False
End Sub
′Timer控件调用获取文本函数
Private Sub Tim_Timer()
hResult = GetCursorPos(Pos)
hNow = WindowFromPoint(Pos.x, Pos.y)