基于windows句柄的界面库设计技术
基于windows句柄的皮肤库是目前大多数商业皮肤库采用的方式,其针对以windows
标准控件如Static,Button,ListCtrl等为基础来Skin。而这类皮肤库的设计也分为两类
一,采用Hook API技术,这种方式在诸多商业皮肤库中多有应用,其方式为Hook 进程内相关windows API函数如Create,CreateEx等,并替换窗口的过程,并做相关的界面绘制操作,这种方式的优势是使用简单,使用者往往在进程启动处,初始化皮肤库就可以了。缺点就是正因为其简单而失去了灵活性,如果需要特殊化绘制某些窗口,则处理起来麻烦。这种Hook API的方式从理论上来说效率应该较常见的方式要低。
二 , 采用SetWindowLong 替换窗口过程的方式。这种类似MFC,ATL的SubclassWindow方式,替换窗口过程,处理WM_PAINT等消息来绘制界面。这种方式需要在窗口创建后自己调用皮肤库的函数来替换窗口过程来实现Skin。
原文地址:uieasy界面开发技术 http://www.uieasy.cn/blog/?p=9

浙公网安备 33010602011771号