今天开始实现"鼠标取词"的功能了.
需求:鼠标指在屏幕的任何一个位置时,把该位置所在的单词或汉字的词取出来.
并向用户显示结果.
问题:我们的组员都不会VC++.而这个貌似简单的问题,实际是很困难的.需要调用
WIN32底层的API.
解决方案:既然自己不行,便考虑使用开源组件,金山词霸中有一个文件"XDictGbr.dll".
我们在C#的工程中将其添加至引用.
并加入适当代码.相关代码如下:
public partial class MotherForm : Form, IXDictGrabSink
{
GrabProxy gp = new GrabProxy();
public MotherForm()
{
InitializeComponent();
}
//接口的实现
int IXDictGrabSink.QueryWord(string WordString, int lCursorX, int lCursorY, string SentenceString, ref int lLoc, ref int lStart)
{
this.textBox1.Text = SentenceString;
//this.textBox1.Text = SentenceString.Substring(lLoc + 1,1);//鼠标所在字符
//Form form = new Form();
//form.Show();
return 1;
}
private void MotherForm_Load(object sender, EventArgs e)
{
gp.GrabEnabled = true;//是否取词的属性
gp.GrabInterval = 1;//指抓取时间间隔
gp.GrabMode = XDictGrabModeEnum.XDictGrabMouse;//设定取词的属性
gp.AdviseGrab(this);
}

以上这段代码只实现了从屏幕鼠标所在位置取一段句子,
还未实现取出客户最可能需要的单词或汉字的词.
本文介绍了在开发过程中实现鼠标取词功能的挑战和最新进展,涉及技术包括字符串处理、VC++编程、对象和类的应用,同时提及了金山软件和C#的相关技术应用。
3776

被折叠的 条评论
为什么被折叠?



