苦闷那!!Richtextbox图片+中文问题!!

zq972 2006-02-21 09:50:28
我的程序是这样的,一个Pic里有一image控件数组,每个对应一个表情
往richtextbox中插入表情的代码如下

***************模块中**************************
Public Const WM_USER = &H400

Public Const EM_PASTESPECIAL = WM_USER + 64
Public Const CF_BITMAP = 2
Public Const CF_TEXT = 1
Public Const DVASPECT_CONTENT = 1
Public Const DVASPECT_ICON = 4
Public re As repastespecial
Public Type repastespecial
dwAspect As Long
dwParam As Long
End Type
***********************************************

******************窗体中************************
private sub image1_click(Index As Integer)
re.dwAspect = DVASPECT_CONTENT
Clipboard.Clear
Clipboard.SetData ImgFace(Index).Picture
txtMsg.SelStart = Len(txtMsg.Text) + 2
DoEvents
SendMessage txtMsg.hwnd, EM_PASTESPECIAL, CF_BITMAP, re
DoEvents
end sub
************************************************
在点击image的时候将表情插入到文本的最后

此时问题出现了,当输入全是英文时没有任何问题,
但是出现了2个或2个以上的中文字符后表情的位置
总是不对,总是忘前跳几个位置,哪位高人能指点
一下这是为什么啊!!!
txtMsg.SelStart = Len(txtMsg.Text) + 2
txtMsg.SelStart = Len(txtMsg.Text)
txtMsg.SelStart = Len(txtMsg.Text) + 2
txtMsg.SelStart = LenB(StrConv(txtMsg.Text, vbFromUnicode))
txtMsg.SelStart = LenB(StrConv(txtMsg.Text, vbUnicode))
都得不到正确的插入位置,郁闷死了!!!

请大家帮帮忙,或者有其他有效的插入表情的方法也可以。
...全文
138 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jpzLove 2006-03-10
  • 打赏
  • 举报
回复
呼呼
zq972 2006-02-22
  • 打赏
  • 举报
回复
哈哈,我已经搞定了
rainstormmaster 2006-02-21
  • 打赏
  • 举报
回复
简单的说,就是不能用SelStart定位,原因是SelStart是基于字符的,而不是基于字节的,你应该发送EM_EXSETSEL消息定位,可以看看这里:

http://rainstormmaster.cnblogs.com/archive/2006/02/19/333330.html

1,502

社区成员

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

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