鼠标取词功能的问题与进展

本文介绍了在开发过程中实现鼠标取词功能的挑战和最新进展,涉及技术包括字符串处理、VC++编程、对象和类的应用,同时提及了金山软件和C#的相关技术应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天开始实现"鼠标取词"的功能了. 

 

需求:鼠标指在屏幕的任何一个位置时,把该位置所在的单词或汉字的词取出来.

并向用户显示结果.

问题:我们的组员都不会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);
        }


 

以上这段代码只实现了从屏幕鼠标所在位置取一段句子,

还未实现取出客户最可能需要的单词或汉字的词.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值