- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
测试的代码如下:
Public Function 获取字符串(文本控件名 As TextBox, Optional ByVal 长度 As Long = 0) As String
Dim 返回长度 As Long, 字符串() As Byte
If 长度 = 0 Then
ReDim 字符串(0)
返回长度 = SendMessage(文本控件名.hWnd, WM_GETTEXT, -1, 字符串(0))
' Debug.Print 返回长度
If 返回长度 < 1 Then 获取字符串 = "": Exit Function
长度 = 返回长度
End If
ReDim 字符串(长度 - 1)
返回长度 = SendMessage(文本控件名.hWnd, WM_GETTEXT, 长度 * 2 , 字符串(0))
'Debug.Print 返回长度
获取字符串 = StrConv(字符串, vbUnicode)
End Function
主要目的是获取一个未知字节数大小的文本框字符,可我在测试时发现了2个问题。
1、当文本框内字符过多(我复制了642K进去)时程序就会崩溃掉,但在第一次读取时设置获取字节数为65536时,能正常读取。
2、当指定长度后,无法正常读取中文字符串,比如测试字符为"I爱YOU",设置长度为2时,就不能正常的获取"爱"字。
求高手解答 |
|