摘要:有过去一个周末了,昨天去看跳水比赛,现场的气氛还是不错的。可惜田亮没有来,否则,光看看观众席的fans也是一种享受啊。废话结束,进入正题,今天讲点以前没说清楚的内容。上次提到了消息反射,但没有深入,这个概念是这样的,许多窗口控件会向父窗口发送一些消息,比如WM_COMMAND消息和WM_NOTIFY消息,通知父窗口一些事件。因为是发给父窗口的,所以控件窗口的过程函数不能捕捉到这些消息。但是,经常我...
阅读全文
摘要:接上篇,控件类的接口有了:CWidgetHookBase,产生控件对象的工厂也有了,下面就该实现控件类了。在上篇定义控件基类的时候,我们只定义了一个抽象函数Install,而没有任何其他代码,那么,所有的实现代码都交给各个控件类去实现吗?不是的,这些控件类还有许多公共代码可以在基类实现,但是,我们选择不在CWidgetHookBase中加入这些代码,而是再加入一个中间类:CWidgetHook。为...
阅读全文
摘要:今天有点空了,继续写。上次我们已经得出了基本的设计,由此确定了每种窗口必须有一个类来与之对应,这里所说的窗口种类是按照窗口的windows class名称来区分的,class名称相同的就认为是一种窗口。这种分类方法和我们看到的窗口种类可能有一些差异,例如,普通按钮,单选按钮和复选框的类名都是“Button”,对于这种情况,我们仍然用一个类来对应这些窗口,而在类内部区分对待这些不同的窗口。这样,我们...
阅读全文
摘要:上次说了hook和窗口类的原理,有了hook,我们可以截取所有消息,有了窗口类,我们可以识别窗口类型,不同类型的窗口给予不同处理。这样,我们要在钩子函数里面识别不同的窗口和不同的消息,有大量的分派工作,更要命的是,光区分窗口类还不够,同类型的不同窗口经常需要不同的处理,例如两个button窗口,大小不同,文字不同,是否有鼠标按下不同...... 这些状态有些是可以从button窗口读到的,例如大小...
阅读全文
摘要:周末过得很充实,攀岩,游泳,fb今天继续记录Skin技术,CodeProject总算可以上传了,文章在这里,代码可以在这里下载。 原理 上次基本上是些介绍,也就是废话,今天讲讲实现Skin的基本原理吧。要实现自己独特的界面,方法有很多啦,上次也说过,这里只讲一种,就是通过消息钩子改变已有控件的外观。这种方法的好处是可以不必修改程序已经完成的标准界面,只要把钩子函数挂上,所有的界面就都变了,使用起来...
阅读全文
摘要:本来想把代码和E文的文章提交到codeproject再写,不知道为什么,这两天codeproject提交向导一直有问题,也罢,先开始写原理吧,反正恐怕也要写几天的 前言 嘿嘿,估计今天写不了多少,就叫前言吧,下次再写原理说到skin技术,大家都不会陌生,最早接触这东西,可能是winamp吧,可以灵活的更换界面风格,非常的花哨。后来使用skin的软件就越来越多了,毕竟做一个漂亮的界面对软件还是很重要...
阅读全文
摘要:胶片就是比数码麻烦啊,等了这么多天,又要洗印,又要扫描的。不过效果还是不错的,不是普通的民用数码可以比的等有钱了还是要买个数码单反,等有钱吧参观偶的作品哦
阅读全文
摘要:刚才在codeproject折腾了半天,居然提交的时候总出错,郁闷,本来想写完了在这里再写个中文版的。算了,先把英文版的贴在这里吧,回头再说,可惜博客园不能上传代码SkinX Infrastructure
阅读全文
摘要:花了半天的时间看这个东西http://windowsforms.net/articles/appupdater.aspx可以很方便的为自己的winform程序加入自动更新的功能,似乎并没有用到.net本身支持的在线更新特性,当然功能也更完善些。可以根据xml manifest文件更新部分组件,可以设置检查更新间隔时间、是否立即重启程序等,还有内置的一些界面,使用确实很方便。因为并没有使用太多.ne...
阅读全文
摘要:今年五一终于和一帮网友去了丽水白山祖。在所谓旅游黄金周,到处都是人山人海的时候,到了一个人迹罕至的大山里呆了4天,这种感觉真是不错的。呼吸了4天山里的空气,回到上海真的有些不习惯。上大学时没什么钱,有时间了也不敢出去玩。上研究生的时候要说真不缺钱,甚至比现在还宽余,也没怎么出去玩真的是可惜了,现在想来都后悔。其实这样的活动真的很有意思,和一帮人相约同游,大部分互相都不认识,而经过这几天时间,就可以...
阅读全文