扫雷___界面的加载

来源:互联网 发布:淘宝旺铺智能版怎么样 编辑:程序博客网 时间:2024/05/16 08:04
界面加载其实没有自己想的那么复杂:

  • 窗口大小的预估及简单3D效果的绘制:
     如果想做一个和window自带扫雷程序一模一样的界面。可以借用一些工具来得到一些基本的量,比如各个矩形框的大小,它们由那些线条组成,线条的宽度等等,然后对窗口块的各个组成部分进行划分,并且得到它们的大小,在验证比对之后,将这一系列的数字做成一串宏。用于之后的引用
       
     对于本次的扫雷界面
     先看宽度,从左到右,宽度依次由一条线宽为3的白条a,一段宽为5的背景b,一段线宽为3的深色线条c,雷区d,一段线宽为3的白色线条e,一段宽为5的背景f
     这里的线条a可通过dc.FillSolidRect来完成,包含c和e的矩形其实可以通过连续三次的Draw3DRect来完成,这个函数通过对一个矩形的左上和右下使用不同深浅的颜色来实现3D效果。左上深右下浅即为凹  左上浅右下深即为凸

     在知道了Draw3DRect之后,我们再来看高度:
     一条线宽3的白条
     一段高5的未使用区
     一个小3D矩形,矩形边宽为2(即连续调用两次)
     一段未使用区
     一个大3D矩形,边宽3
     未使用区

     在理解了窗口的组成后可以绘制外壳:
     
     至于矩形内部的东西主要是贴图下面会讲到
  • 对于位图的加载:
     1.准备相关位图资源 按照一定的规律摆放
     2.根据位图资源的排列顺序定义一系列的宏 这些宏对应的位图最好刚好能够通过宏的值乘上单位位图大小来得到
     比如
     宏的实现:
                     
     3. 这样我们就能很方便的通过以下代码将雷方块状态对应的位图加载到窗口:
     
     4.数字区贴图代码类似,这里面为了保持程序的简单,直接用像素点单位使用了数字(数字位图的大小:13*23):
       
     5.对于笑脸区,它实际上只是一个位图,我们通过对它的贴图以及一些简单的3D效果来模拟按钮

总结: 这里的界面绘制主要是对Draw3DRect和FillSolidRect的配合使用的熟悉以及简单贴图程序的准备工作。要达到一模一样的效果,需要多实验,多比较,可以用一些像素点侦查工具(截图,Spy++,WinCrap等等)

完整源代码下载地址点击这里
     http://download.csdn.net/detail/wudaijun/4709630

原创粉丝点击