|
电子词典中鼠标取词的原理(1)
-- ※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.117.20.17] 发信人: Dreammy (George), 信区: Programming 标 题: Re: 谁知到电子词典中鼠标取词的原理? 发信站: BBS 水木清华站 (Thu Nov 6 17:51:06 1997) 【 在 dandan (dandan) 的大作中提到: 】 : 如题。 据我所知,解决方案一般有两种,都是针对如何知道当前屏幕任一坐标出的 字符的 1.采用截获对部分GDI的API调用来实现,如TextOut , DrawText , TextOutEx等, 字典对每次写屏操作进行跟踪. 技术细节就不赘述乐 这种方法也在一些中文系统如中文之星等中采用,另外,有些第三方的字体, 如ADobe等,也是这个方法(参阅<<Undocumented Windows>>(Andrew Schulman)) 2.对每个设备上下文(DC)做一分Copy,并跟踪所有修改上下文(DC)的操作 这种方法更强大,但兼容性不好 实际上,无论那种方法,都有潜在的问题,如第一种方法,它在WIN95下 时仍是16位方式的(32位技术困难较大),这样就隐含了一个假定:所有 文本输出的32位API都要通过16位的DLL实现,在WIN95中的确如此,担高版本 就难说了 而且即使是第一种方法也容易带来兼容性的问题,比如博雅和中文之星2.0之间就有 一定的兼容性问题(WIN95下) -- ※ 修改:·Dreammy 於 Nov 6 17:57:23 修改本文·[FROM: 166.111.78.230] ※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.78.230] 发信人: Gryphon (刘姥姥), 信区: Programming 标 题: Re: 谁知到电子词典中鼠标取词的原理? 发信站: BBS 水木清华站 (Thu Nov 6 21:33:32 1997) 【 在 dandan (dandan) 的大作中提到: 】 : 如题。 我是听过有人说,但不清楚。 具体的情况是:启动抓字程序的时候将GDI库中的TexOut截取出来。 当Mouse移动到那里后,就取到了。 我没做过,可能不正确 --
|