日期:2014-05-20  浏览次数:20823 次

文本框里,如何获得鼠标位置的单个文字?
我想做一个功能,在一篇文章中,鼠标停留在某个字上,就显示某个字的拼音。(给小朋友用的)(感觉有点像金山词霸取词的功能)
问题来了,如果是Label或者Textbox等能显示文字的控件里,如何获取鼠标停留位置的文本?


------解决方案--------------------
这个啊,给个思路把,作起来没有点功底是作不出来的。当然是底层的功底了

用api hook;
1)获得鼠标当前位置,这个可以用.net来获得
2) 获得鼠标下面的窗体,这个只能枚举所有窗体enumWindow以及activewindow来判断了,用win api
3) invalidateRect,目的是为了重绘那些字,从而获得那些字
4)hook住下面几个底层函数,Textout,drawtext从他的参数就能获得那些字了。
应为重绘,所以系统会再次调用上面的几个函数。

还有,你最好会汇编代码。
------解决方案--------------------
API的也应该是有例子,就是先定义再引用就是了