挖井

类库大魔王的挖井日记

挖一口属于自己的井


我是个换肤论者

  “换肤论者”,呵呵,这个名词是在公司内部一个论坛上看到的,说的是一位同事说sogou输入法可以换成好多不同的外观,然后下面就有另外一位同事说,原来是个换肤论者。现在我发现,我也是个换肤论者,上sogou的网站看看,有好多比较漂漂的皮肤,然后又看到像极点中文之类的五笔输入法也是可以直接支持换肤的,想我用的五笔加加就不行,虽然当年它刚出来时用的组合框和候选框合一的界面新颖大气,可是这么多年过去了,也看腻了。无聊了,于是打算把我自己在整的那个输入法弄成可以换肤的,呵呵,大概的样子就像sogou那样,可以让候选框使用不规则形状,其实是用一张图片加掩码来合成一个region,再设成窗口的形状。用google在codoguru上搜到一段代码,可以把一个bmp转换成region,太好了,直接套上,真的可以直接显示不规则窗口呀,好开心!不过昨天发现问题,先是大红色(RGB(255,0,0))的掩码不起作用,但粉红色(RGB(255,0,255))的可以,单步跟踪到那段代码里面,发现是GetRValue等操作的时候在对一个色彩值取值时好像顺序错了,于是自己改了一下,改成大红色的也可以了,但其实没改对。后来又发现,对于超过一定高度的图片,窗口只能显示出上面一部分,又找了好久,把一些有用没用的代码都删掉,还是没找到原因,一直搞到后半夜2点,弄得心力交瘁啊。今天回来一下,原来在每次重画窗口时有一个MoveWindow操作,里面把高和宽都写死了,高只写了个90,所以只要超过90个像素高度的图片来操作,都会有问题。然后又发现,有一张淡蓝色掩码的,也没有正确的合成region,再跟踪了一会,又是那边取色彩值的地方的问题,又改了一下,现在也可以了,不知道是原本代码中的问题,还是其它什么问题,因为代码中提供的示例程序,是用黑色(RGB(0,0,0))这样特殊的值来演示的,可能并不能很好地测试到。
  关于在Firefox中不能显示的原因,所说是因为自由拼音输入法并没有完全按照IME框架来写的,所以有问题,难道我要去找DDK中的那个例子来看看,然后重新写了一个。
  不过说实话,自由拼音中的结构真的有点乱,而且效率也不行,特别是词库组织方面,比较土。尤其是后来被另一位作者加了五笔功能,代码更乱,连用UNICODE编译都会有问题。真要好的话,真的不如好好学一下IME框架,能支持UNICODE从头开始写一个。
  目前已知问题:
1、有些程序下弹不出候选窗口;
2、有时候词库会乱,要重新打开一遍输入法才行;
3、有时候会引起程序死掉,今天在公司里用Word就碰到过,所以不能用于重要场合;
4、拼音的词组词库有问题;
5、有时候状态窗口也显示不出来;
6、还有很多其它小问题。

本文地址:

https://minidump.info/blog/2007/06/e6-88-91-e6-98-af-e4-b8-aa-e6-8d-a2-e8-82-a4-e8-ae-ba-e8-80-85/

上一篇

去阿菲那里吃了顿

  真是赶啊,下班就忙不迭地跑去生产中心坐班车,跟估计的差不多,开了45分钟到了莲塘,然后又走了五六分钟路,才赶到吃饭的地方,xcc和他gf已经在了,4个人喝了一顿粥。…

mm 全文阅读
下一篇

本输入法的重大进步

  经过查看DDK中的IME源代码,学习了一下后,发现有一个办法可以算是避规那个在某些程序中显示不出候选窗口的问题。只要在接收到某个通知的时候,强制移动一下候选窗口就可以了,不过光标跟随问题没有解决,它只能固定地停在一个位置,不过也已经算是重大进步了,哈哈,真是开心啊。可以搞一下词库以及内部表...…

Shareware 全文阅读