万星星@豌豆荚 欢迎加入我们
一个吃软饭的男人!!!!!我只想写程序####
微博:http://weibo.com/wanlianwen
posts - 172,  comments - 1253,  trackbacks - 0
网上看见过很多Skin技术,但是以我所见提供代码的真没几个能把细节处理好的,这里我提供一个来接受批评,内存问题应该没有或者很少,如果发现请告诉我一下。

很久没有摆弄窗口的skin了,上一次做好像还是1、2年前,当时有一些地方处理的不是很好,但是勉强能用。由于升级的需要,界面的技术也得动一下略作表示。根据自己的经验加上同事的前期技术调研加上后面自己的整理,一个比较满意的方案算是出来了,在实现的基础上尽量保证了Windows的基本特性,比如左上角的系统菜单、标题栏的系统菜单,模仿了QQ2008的一个特性:窗口的按钮不在任务栏显示,但可以通过ALT+TAB进行窗口的访问。Skin的通用型上也做了最大化的兼容,active和unactive状态,12个方位贴图,且为主窗口添加的菜单扩展按钮并提供tooltip的支持。当然存在的问题还有待于慢慢发现,暂时是一个满意的方案,当然只包括顶层窗口的Skin,子窗口的将通过其他技术进行解决。题外话:有些人说xp不是有皮肤吗?在Vista、Win7上这种技术还有存在的必要嘛?我自己的认为是一种界面风格代表的可能是一个企业的理念,可能成为企业的标识之一。

界面预览:




代码

注:VS2008开发,左键双击登录窗口客户区显示主界面。代码部分修改后可使用,但请不要使用图片资源。
posted on 2009-07-09 10:54 万连文 阅读(3495) 评论(14)  编辑 收藏 引用 所属分类: 小作品

FeedBack:
# re: 顶层窗口的Skin
2009-07-09 11:03 | 万连文
呃~~~,刚刚还说满意就发现问题,主界面最小化后就会发生问题,修改中......

已经修改完毕,最小化的时候隐藏窗口(到托盘,过程没有做),当然最小化之后你就没法关闭了,由于没有做托盘部分显示主窗口的编程,所以测试的时候只能杀掉进程了。这样应该不会再有什么麻烦了。  回复  更多评论
  
# re: 顶层窗口的Skin
2009-07-09 12:20 | Touchsoft
我要能贴图的话,也可以给你看一下我最近刚绘的。:)  回复  更多评论
  
# re: 顶层窗口的Skin
2009-07-09 12:31 | Touchsoft
刚看了一下代码,看来你也读了“shareaza”源码中的换肤部分。  回复  更多评论
  
# re: 顶层窗口的Skin
2009-07-09 12:37 | 万连文
@Touchsoft
是的,很久以前看过,做的比较好,不过当初还是发现一些不完美的地方。  回复  更多评论
  
# re: 顶层窗口的Skin
2009-07-09 12:42 | Touchsoft
回复真快,发现BUG,当窗口(你提供的代码中的EXE,是那个登录窗口。)处于非激活状态时,此时,当鼠标移动到关闭等系统按钮上时,不会高亮显示。  回复  更多评论
  
# re: 顶层窗口的Skin
2009-07-09 12:46 | Touchsoft
不会是最小化后,程序直接挂了吧。
我也遇到过,是绘图区域错了,因为最小化后得到了一个错误的区域。12个方位贴图中,有一个错了。  回复  更多评论
  
# re: 顶层窗口的Skin
2009-07-09 12:56 | 万连文
当鼠标移动到关闭等系统按钮上时,不会高亮显示

这个是故意处理的,因为我们的系统里面inactive只有一种状态,所以没有区分,就没有做inactive的高亮


最小化之后程序挂掉?? 没发现这个问题


12个方位贴图中,有一个错了。 左上的IA状态搞成上左了,已经修改,我说怎么老是感觉inactive状态左边有一个小白点,谢谢!  回复  更多评论
  
# re: 顶层窗口的Skin
2009-07-10 09:32 | kuafoo
我下载的里面怎么没有第二个窗口的示例呢,很想知道那个菜单是怎么放到标题栏的  回复  更多评论
  
# re: 顶层窗口的Skin
2009-07-10 10:05 | 万连文
看最后面的注释:

注:VS2008开发,左键双击登录窗口客户区显示主界面。代码部分修改后可使用,但请不要使用图片资源。   回复  更多评论
  
# re: 顶层窗口的Skin
2009-07-22 21:53 | Qt
想问下里面那个ini文件是自己根据图片计算的值吗?有没有什么规律?  回复  更多评论
  
# re: 顶层窗口的Skin[未登录]
2009-07-23 07:22 | 万连文
那个是根据美工的图片来确定的,没有规律,就是把点坐标起始和长宽卡住就可以了。  回复  更多评论
  
# re: 顶层窗口的Skin
2009-08-23 02:01 | classvia
你好,感谢你的精彩文章,问个小问题,SKINPART_IA_TOP_LEFT中的IA代表什么,谢谢:)  回复  更多评论
  
# re: 顶层窗口的Skin
2009-08-24 02:30 | classvia
知道了谢谢  回复  更多评论
  
# re: 顶层窗口的Skin
2011-08-27 14:23 | liqisong
这个在win7下有点小问题,最小化后再弹出 楼主你看看
应该是某个消息没响应好  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


简历下载
联系我

<2006年8月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(66)

随笔分类

随笔档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜