Make Oneself More Strong

mcs51a( 高兴就写点:-),不高兴就不写 )

Skinlib 中CSkinDialog的代码分析

SkinLib的代码简单明了,对于想学习和了解UI Skin的原理来说是合适的. 相关链接如下
http://www.cppblog.com/netboy/archive/2009/02/15/73863.html

CSkinDialog 使用Hook,WndProc技术,重载原有绘制消息过程.
CSkinDialog的区域分为客户区域和非客户区域,CSkinDialog的非客户区域又被分为如下几个子区域,
1.左边缘,m_nToLeft为窗口的左边缘长度.
2.右边缘,m_nToRight为右边缘的长度.
3.Caption区域,m_nToTop 为其高度,Caption 区域又可以分为
  3.1.(0,0,m_nTopLeft,m_nToTop)
  3.2.标题区域 (m_nTopLeft,0,rcWnd.Width()-m_nTopRight,m_nToTop)
  3.3.close,max,min 按钮区域
4.下部边缘,m_nToBottom为下部边缘的高度

根据配置文件,读取到相应的Skin,绘制上述Dialog几个子区域.
1.DrawBorder绘制左,右,下部边缘.
2.DrawCaption绘制Caption区域.

posted on 2011-06-07 18:07 mcs51a 阅读(1768) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理