VC++软件界面风格简单美化

原文地址: http://www.cnblogs.com/margin1988/archive/2012/05/04/2482834.html
详细参考 http://pcedu.pconline.com.cn/empolder/gj/vc/0404/358979_2.html

为了让软件能在视觉上给用户带来一种清新的感觉,从而避免潜在的用户视觉疲劳和审美疲劳,软件一般都要经过专业的界面设计和美化。但是,我们不是也没有专业的界面设计美化人员,所以只能对软件的界面和风格进行初步的简单美化,主要是色调的搭配、图片、字体的简单美化处理等基本工作。

下面结合实例,详细介绍一下之前的软件开发中所用到的两种软件界面风格简单美化的方法:

(1)采用OnCtlColor函数,对软件的界面进行简单的美化。(完整的实例程序可在我的CSDN资源中下载:http://download.csdn.net/detail/margin1988/4241231
   采用这种方式,只能对软件界面在背景颜色、控件颜色、字体等方面做简单的美化。其主要的操作步骤如下:

   1)在相应的.h文件中添加OnCtlColor函数:

1 afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);

   2)在相应的.cpp文件中添加消息映射宏:

1 BEGIN_MESSAGE_MAP(CPoint11Dlg, CDialog)
2 ON_WM_CTLCOLOR()//OnCtlColor函数的消息映射宏
3 END_MESSAGE_MAP() 

   3)在相应的.cpp文件中编写OnCtlColor函数的实现体:

复制代码
 1 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
 2 switch (nCtlColor) 
 3 { 
 4 case CTLCOLOR_STATIC: //静态文本
 5 { 
 6    pDC->SetBkMode(TRANSPARENT); 
 7    HBRUSH B = CreateSolidBrush(RGB(191,219,255)); //控件背景颜色
 8    pDC->SetTextColor(RGB(0,0,0)); //控件中的文字的颜色
 9    return (HBRUSH) B; 
10 }       
11 break;                
12 case CTLCOLOR_DLG : //对话框背景
13 { 
14    pDC->SetBkMode(TRANSPARENT); 
15    HBRUSH B = CreateSolidBrush(RGB(191,219,255)); 
16    pDC->SetTextColor(RGB(0,0,0)); 
17    return (HBRUSH) B; 
18 }      
19 break; 
20 default:   
21    return hbr; 
22    break; 
23 }
复制代码

   ※需要注意的一点是:当对话框背景颜色和静态文本的背景色设置一样时,软件界面中的静态文本产生的阴影将消失,使得界面更加整洁。

(2)使用SkinMagic插件,对软件的整体界面风格进行改变和美化。(完整的实例程序可在我的CSDN资源中下载:http://download.csdn.net/detail/margin1988/4241231

   使用这种方式,可以改变软件的整体风格,从而也改变了软件中所有细节的风格,可以达到比较好的整体美化效果。但是,使用这种方式也有它自己的缺点,那就是虽然SkinMagic插件是一个免费的插件,但是它所提供的界面风格是相当有限的,而且这其中的界面风格比较清新好看的更是少之又少。SkinMagic插件的使用步骤如下:

   1)将SkinMagicLib.h,SkinMagicTrial.lib,SkinMagicTrial.dll三个文件copy到程序目录中。
   2)将SkinMagicLib.h添加到工程的“头文件”中;在工程“属性”页的“配置属性-链接器-输入”的“附加依赖项”中输入SkinMagicTrial.lib。

   3)在stdafx.h中添加:

1 #include "SkinMagicLib.h"
2 #pragma comment(lib,"SkinMagicTrial.lib")

   4)在"工程名App.cpp"或者"工程名.cpp"中的InitInstance()函数中添加: 

1 VERIFY(1==InitSkinMagicLib(AfxGetInstanceHandle(),_T("Demo"),NULL, NULL));
2 CString str;
3 str.Format("%ssmf\\corona.smf",g_BasePath);
4 VERIFY(1==LoadSkinFile(_T(str)));
5 SetDialogSkin(_T("Dialog"));

   5)在项目的配置属性中改为使用“使用多字节字符集”字符集,否则编译时会出现函数名无法解析的错误。


目前网上SkinMagic的破解版有三种,一种是1.0的,第二种是2.01的,还有一种是2.21的。1.0版有一个比较大的Bug,在列表控件上无法显示中文。而2.21版就太复杂了,有四个不同的库,因此推荐使用2.01版。

2.0b1版破解Dll下载地址
http://www.cppblog.com/Files/tx7do/SkinMagic221_1.rar
2.0b1原版
http://www.appspeed.com/download/v2.0/setup.exe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值