标题:问个问题
只看楼主
yuhongpu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-1-15
 问题点数:0 回复次数:6 
问个问题
像金山词霸那样把鼠标放在英文单词上面会显示出中文意思那样,请问能不能用VB实现这种功能?如果能的话应该用什么代码?
搜索更多相关主题的帖子: 金山词霸 鼠标 单词 英文 中文 金山词霸 鼠标 单词 英文 中文 
2005-01-15 10:08
vb
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-1-20
得分:0 
我只知道能实现,但我没有那个代码不过对我来说要点时间!你到别的地方找找吧
2005-01-20 15:01
─━☆vb打渔者
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2004-10-31
得分:0 
没听说过

2005-01-21 19:47
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
好像得用api函数来实现这一功能。
2005-01-22 16:32
serverliu
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2005-2-10
得分:0 
可以在tooltip**属性设置
2005-02-10 22:36
jkzhp
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2004-8-2
得分:0 
VB6中做不到的,TNND

大地无限,天外有天,阔大无比——————大天阔
2005-02-16 16:07
zero_one
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-2-12
得分:0 
做得到,要用API函数 在有些软件里当鼠标移到某单词上,其注释就会显示单词的中文解释.这样的软件是如何制作的呢?下面我就介绍以下获取鼠标所在单词的方法,至于中文结实要关系到数据库及字库问题在此我不做解释. 首先建立新工程,在FORM上添加一个TEXT文本框. 声明SendMessage函数.
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Const EM_CHARFORMPOS=&HD7'在API浏览器里无此值请自己加上.
自定义过程:
Private Sub Text1_MouseDown(Button As Intege,Shift As Integer,x As Single, y As Single) '获取鼠标所点的是第几行第几个字符 Dim pos As Long,Lc As Long Dim Line As Integer,CharPos As Integer x=x/Screen.TwipsPerPixelX y=y/Screen.TwipsperPixelY pos=x+y*65536 Lc=SendMessage(Text1.hwnd,EM_CHARFROMPOS,0,ByVal pos) Line=Lc\65536 '第几行 CharPos=Lc MOD 65536 '第几个字符 End Sub '接下来才是真正的读取函数 Function GetWord(txt As TextBox,pos As Integer) As String Dim bArr()As Byte,pos1 As Integer,pos2 As Integer, i As Integer bArr=StrConv(txt.Text,vbFromUnicode)'转换成Byte数组 pos1=0:pos2=UBound(bArr) '向前搜索分格符的位置 For i=pos-1 To 0 Step -1 If IsDelimiter(bArr(i)) Then pos1=i+1 Exit For End If Next '向后搜寻分隔符字符的位置 For i=pos To UBound(bArr) If IsDelimiter(bArr(i)) Then pos2=i-1 Exit For End If Next '截取pos1-pos2之间的字符,以构成一个单词 If pos2>pos1 Then ReDim bArr2(pos2-pos1) As Byte For i=pos1 To Pos2 bArr2(i-pos1)=bArr(i) Next GetWord=StrConv(bArr2,vbUnicode) Else GetWord="" End If End Function 'IsDelimiter函数 Functon IsDelimiter(ByVal Char As Byte) As Boolean Dim S As String S=Chr(Char) IsDelimiter=False If S=" " Or S="," Or S="." Or S="?" Or S="vbCr Or S=vbLf Then IsDelimiter=True End If End Function

---------------------------------------------- 我郁闷,因为学得差劲。
2005-02-16 17:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-11323-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051952 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved