函数的运用问题?

cqcpl 2009-03-26 12:39:59
想用SendMessage函数取得文本框中指定行的位置(用来确定.Selstart的位置),以下代码能处理英文,如果包含中文字符则出错,请高手指点修改

Private Const EM_LINEINDEX = &HBB
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

SendMessage(TextControl.hWnd, EM_LINEINDEX, LIndex - 1, 0) + 1
...全文
73 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2009-03-26
  • 打赏
  • 举报
回复
同样要通过 API 设置选中
Option Explicit
Private Const EM_SETSEL As Long = &HB1
Private Const EM_LINEINDEX = &HBB
Private Declare Function SendMessage Lib "user32" Alias "SendMessageW" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Sub Command1_Click()
Dim i As Long, LIndex As Long
LIndex = 3
i = SendMessage(Text1.hWnd, EM_LINEINDEX, LIndex - 1, 0)
SendMessage Text1.hWnd, EM_SETSEL, i, ByVal CLng(i + 1)
End Sub
东方之珠 2009-03-26
  • 打赏
  • 举报
回复
好好看看这篇文章(看完之后sendmessage函数就熟练了):
http://www.codesky.net/article/doc/200310/2003100373224352.htm

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧