• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#winform实现QQ2009游戏界面

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

       皮肤制作,估计是很多winform新手都想学的,网上也有很多的DLL可以实现,但对.net能很好支持的不多,很多只是能支持MS的控件界面,对其它第三方的控件就没有办法支持了。

    QQ2009游戏界面,这个程序看上去让我觉得耳目一新,从09发布出来就我盯上了它,下面我来说说我感觉它是如何制的。

     我们当然得从它的文件夹说起,打开QQ游戏的安装文件夹,可以发现一个 名为"Res"的文件,很明显,这就是它的资源文件夹,我们只要关注它下面的几个文件夹就可以了

   

  很明显,第一个是公用资源,第二个我记得之前的版本是没有的,估计是新加进来的,第三个就是它的logform所用图片,第四个就是它的主界面资源文件夹,只要我们拿着这些资源,我们完全可以将这套皮肤拼凑出来。这里我只用到1,3,4这三个文件夹的资源就可以了,让我最大的遗憾是我还没有想出来它的listview的滚动条是如何弄的,网上有C++的代码可以实现滚动条换肤,C#也有,但是我认为是自欺欺人的做法,我就不提了。下面我来一步一步实现这个界面出来,希望腾讯的朋友看到这个文章的时候,可以指导一下他们是如何做的。

  从资源文件我们可以分析出来,窗体是去了边框的,所有的边框都是自己画的,再加上代码去控制的。我们来分析它的主界面图标。

  打开文件夹D:\Program Files (x86)\腾讯游戏\QQGAME\Res\MainWin\Border,看下图描述

  

  我们只要用了这几个图标就可以把主界面画出来了。其它文件夹也是相同的命名方法,我就不费话了。

  据我分析,它有loginform,winmainform,tipform(右下角弹出的提示),还有像菜单下的设置的窗体这几种,我们一个个的来做出来。

  既然几种都是重绘出来的,那么我们先定义一个formbase,把基本要处理的都写在这个窗体上,然后再通过继承这个来各自实现它们。又因为些窗体中所使用的窗片大小又不一致,那只能是各个自画了。

  我们来新建一个空白的解决方案,命名空间我取名为CreativeDesign,考虑到窗体有多次重用,那么我们将实现皮肤写成一个控件方便以后调用,所以先添加新建一个项目CRD.WinUI,类型我们选类库(注意不要选了应用程序),为了调用程序,那我们当然得再添加一个windows应用程序项目了。取名为CRD.CreativeDesign.Main,然后将它设置为启动项,之后在它的引用中右击 “添加引用”--->“项目”,选中CRD.WinUI,就可以了。之后右击CRD.WinUI项目,“添加”--->“新建文件夹”,名为“Forms”。之后在这个文件右击添加一个窗体,名为“FormBase”,将它默认产生的那个class1类改名为 Shared,我们会将一些公用方法写到这里来。之后接将其它的form一并加进来,如下图的结构

    

  资源文件是肯定不能少的了,我们们不要直接将那些图片加到项目中的资源中,我们先新建一个文件夹,名为Res,然后装QQ游戏下的上面的三个文件夹复制过来,然后再加到项目中,如下图

  

  我们在逐个展开刚才那三个文件夹,选中文件中那些图片,右击选择属性,在属性中的 “生成操作”----》“嵌入的资源”,因为里面的很多图片我们都不用到,我们只要选上了mainwin文件夹下的border,button,还有login文件夹中图片,common中的msgbox,newadtip,dialog2009就可以了,如果还少我们后面再加进来。

  大家应该知道,程序上的图片过多,程序会变慢的,我之后会再写一个文章来讨论这个问题,谈谈如何优化这些,在这里先不讨论了。

  写到这里估计很多人想看看效果再接着写了吧,我们就先来看看,我们要做到的是什么样的效果吧  

  

  

    

  明天待续。。。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap