private Declare Sub RtlMoveMemory Lib " kernel 32 "(目標為任意,源為任意,ByVal長度為Long)
私有聲明函數SendMessage Lib“user 32”別名“SendMessage a”(ByVal hwnd為Long,ByVal wMsg為Long,ByVal wParam為Long,lParam為Any)為Long
私有Const EM _ CHARFROMPOS = & ampHD7
私有常量EM _ LINEINDEX = & amp羥芐基苯並咪唑
私有常量EM _ LINELENGTH = & ampHC1
私人Const EM _ GETLINE = & ampHC4
private Sub text 1 _ MouseDown(Button為整數,Shift為整數,X為單值,Y為單值)
在文本框text1中按下鼠標,會彈出壹個對話框,顯示光標所在行的內容和光標所在的單詞。
尺寸位置壹樣長,lc壹樣長
Dim線為整數,CharPos為整數
pos = X /屏幕。TwipsPerPixelX + Y /屏幕。TwipsPerPixelY * 65536
LC = SendMessage(text 1 . hwnd,EM_CHARFROMPOS,0,ByVal pos)
Line = lc \ 65536
CharPos = lc Mod 65536
MsgBox "?= " & ampGetLine(Text1,Line)& amp;vbCrLf & amp;" Word = " &;GetWord(Text1,CharPos)
末端接頭
函數GetWord(文本作為文本框,位置作為整數)作為字符串
獲取光標所在的單詞。
Dim bArr()為字節,pos1為整數,pos2為整數,I為整數
bArr = StrConv(txt。文本,vbFromUnicode)
pos1 = 0: pos2 = UBound(bArr)
對於i = pos - 1至0步驟- 1
如果IsDelimiter(bArr(i))則
pos1 = i + 1
為...退出
如果…就會結束
然後
For i = pos To UBound(bArr)
如果IsDelimiter(bArr(i))則
pos2 = i - 1
為...退出
如果…就會結束
然後
如果pos2 & gt那麽pos1
ReDim bArr2(pos2 - pos1)作為字節
對於i = pos1至pos2
bArr2(i - pos1) = bArr(i)
然後
GetWord = StrConv(bArr2,vbUnicode)
其他
GetWord = " "
如果…就會結束
結束功能
函數IsDelimiter(ByVal Char As Byte)為布爾值
單詞'的分隔邊界符號
將S作為字符串變暗
S = Chr(Char)
IsDelimiter = False
如果S = " "或S = " "或S = " "還是S = "?"或者S = vbCr或S = vbLf
IsDelimiter = True
如果…就會結束
結束功能
函數GetLine(txt作為文本框,ByVal作為整數)作為字符串
獲取光標所在行的文本內容。
Dim S為字符串,Length為整數,pos為Long
GetLine = " "
pos = SendMessage(txt.hwnd,EM_LINEINDEX,Line,ByVal 0 & amp)
Length = SendMessage(txt.hwnd,EM_LINELENGTH,pos,ByVal 0 & amp)
S =字符串(長度,Chr(0))
RtlMoveMemory ByVal S,長度,2
If SendMessage(Text1.hwnd,EM_GETLINE,LINE,ByVal S)>那麽0
GetLine = S
如果…就會結束
結束功能
private Sub text 1 _ MouseMove(Button為整數,Shift為整數,X為Single,Y為Single)
當鼠標停留在壹個單詞上時,text1會顯示壹條提示消息(當前光標所在的單詞)。
尺寸位置壹樣長,lc壹樣長
Dim線為整數,CharPos為整數
pos = X /屏幕。TwipsPerPixelX + Y /屏幕。TwipsPerPixelY * 65536
LC = SendMessage(text 1 . hwnd,EM_CHARFROMPOS,0,ByVal pos)
Line = lc \ 65536
CharPos = lc Mod 65536
Text1。ToolTipText = get word(text 1,CharPos)
末端接頭
以上內容以字換字多行文本框。