Winform换肤原理
来源:互联网 发布:手机如何开通淘宝网店 编辑:程序博客网 时间:2024/04/29 18:51
跟踪代码,Winform换肤的实现主要是读取换肤的配置文件,然后重绘所有所有窗体以及窗体中的所有控件,大致回应WM_PAINT和WM_NCPAINT。
从网上获取大量资料,发现做这部分内容,需要掌握两个技术点:其一是GDI+(图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出),其二是API(Windows API是一套用来控制Windows的各个部件的外观和行为的一套预先定义的Windows函数)。
根据不同的对象,换肤可以分为窗体换肤和控件换肤。无论是哪种换肤,它们实现的基本原理都是通过拦截Windows消息,绘制自己想要的效果,再用自己绘制的把系统的覆盖掉。
1. 控件内部滚动条的实现原理
滚动条换肤的难点在于无论怎么拦截Windows消息,都无法阻止系统去勾绘滚动条。若要系统不对其进行绘制,一定要接管滚动条消息的管制和描绘,Windows给出了有关滚动条的API:
GetScrollInfo——该函数获取滚动条的参数:滚动条位置的最值,页面大小,滚动按钮的位置
SetScrollInfo——该函数设置滚动条的参数:滚动条位置的最值,页面大小,滚动按钮的位置
在处理的过程中,需要处理几个方法,包括Value值、鼠标事件和MoveThumb方法。
2. 菜单的实现原理
首先,获取菜单句柄。给菜单窗口发送MN_GETHMENU这个信息就可以获取了
其次,窗口标题栏。题目栏在元素转变时,系统会自动绘制的。如果把标题栏格调WS_CAPTION去掉,会造成许多项目失效。
说明:消息,就是指Windows发出的一个通知,告诉我们应用程序的某个事情发生了,如:单击鼠标、改变窗口尺寸等。消息本身作为一个记录传递给应用程序,这个记录中包含了消息的类型以及其他信息。
原文地址:http://blog.csdn.net/daidailiuhome/article/details/6885549
- Winform换肤原理
- Winform换肤原理
- winform 换肤
- winform 换肤组件
- .Net下WinForm换肤控件整理
- .Net下WinForm换肤控件整理
- .Net下WinForm换肤控件整理
- .Net下WinForm换肤控件整理
- .Net下WinForm换肤控件整理
- 用C#实现换肤功能 - winform
- C# WinForm ComboBox控件美化换肤
- C# WinForm ListView控件美化换肤
- .Net下WinForm换肤控件整理
- Net下WinForm换肤控件整理
- Developer Express .NET Winform - Winform的换肤
- 【WINFORM】换皮肤入门
- Winform 换皮肤
- winform 换个皮肤
- Oracle数据库中出现ORA-01157: 无法标识/锁定数据文件
- JFrame背景图添加(不影响按钮或者其它组件)
- 丰华股份后法国后大风过后飞过海豆腐干后地方个
- D_db2_event_deadlock
- Cocos2d-x3.1ImageView的使用
- Winform换肤原理
- Java问题集锦
- 个后法国后地方个后恢复搞活地方更好的
- SpringMVC系列之(一) 入门实例
- uva10755 - Garbage Heap
- Android开发系列之搭建开发环境
- 从未安装的APK中获取默认启动的Activity
- U-Boot中部分cmd执行时死机问题分析
- 学习Qt的资源-网站、论坛、博客等