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

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

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

转载于:https://www.cnblogs.com/margin1988/archive/2012/05/04/2482834.html

VC++软件界面风格简单美化相关推荐

  1. webots软件界面和简单系统仿真

    1.首先启动webots 2.进入到了软件页面 3.点击tools-preferences 4.调成简体中文 5.重启生效 6.页面变成了中文 7.帮助-webots引导之旅 8.进入引导页面 9.点 ...

  2. 使用Qt绘制一个简约美观的界面 【使用QSS简单美化】(笔记)

    文章目录 使用Qt绘制一个简约美观的界面-使用QSS简单美化 基本控件布局 界面的简单美化 QSS 添加图片 使用Qt绘制一个简约美观的界面-使用QSS简单美化 基本控件布局 以绘制登录界面为例,创建 ...

  3. 软件界面中菜单的美化 (转)

    软件界面中菜单的美化 (转)[@more@] 在网上有很多文章都提到怎样在菜单中加入背景图片,可是都没有一个完整的回答,也没有一个比较完整的例子.当然csdn曾经有一个高人说过这个问题,而且在程序员大 ...

  4. 软件界面设计原则(转)

    一:遵循一致的准则,确立标准并遵循 无论是控件使用,提示信息措辞,还是颜色.窗口布局风格,遵循统一的标准,做到真正的一致. 这样得到的好处: 1:使用户使用起来能够建立起精确的心里模型,使用熟练了一个 ...

  5. VC API常用函数简单例子大全(1-89)

    第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄 函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCST ...

  6. Manjaro KDE 21.2.5安装后配置、yay常用命令、常用软件安装及主题美化(2022.04.18)

    Manjaro KDE 21.2.5安装后配置.yay常用命令.常用软件安装及主题美化(2022.01.23) 结果展示 基本配置 关于 manjaro 的安装这里不再赘述了,安装的时候选择闭源驱动无 ...

  7. VC API常用函数简单例子大全

    VC API常用函数简单例子大全 http://hi.baidu.com/tag/vc%20api%E5%87%BD%E6%95%B0/feeds 系统API查询 http://www.vbgood. ...

  8. 让你的软件界面更漂亮(一)

    我们使用过很多的软件, 给我们留下印象很深的是那些界面漂亮且迷人的软件, 国外的软件象QuickTime,国产的象金山词霸等,它们的软件界面设计风格都有独特之处.本人跟据自已的经验和大家探讨一下软件的 ...

  9. 无标题窗体的移动及其简单美化

    先看效果图吧. 最近做Web,发现网页三剑客总是会留下一些"最近打开项目"这样的痕迹在软件的界面上,心里总是觉得很不舒服,于是萌发了写一个清除器的念头.说动手就动手吧! DW.FW ...

最新文章

  1. 怎么主动发起话题_约会的时候,多聊这4个话题,女人才会失去抵抗力
  2. python画曲线-如何通过python画loss曲线的方法
  3. linux设备模型之Class
  4. php mysql筛选查询,php-Vicidial的MySQL筛选器
  5. css 样式三元运算_CSS扩展语言——Sass入门指南
  6. 遗传算法各Matlab工具箱简介
  7. python 金融可视化_用 Python 进行金融数据可视化
  8. 逆波兰表达式(信息学奥赛一本通-T1198)
  9. 关于 m_pszAppName
  10. 闪客工具:好玩的GifCam录制gif软件
  11. 当img没有图片时候,显示默认图片代码
  12. 浏览器标准模式和怪异模式之间的区别是什么?
  13. Linux 网络命令大全
  14. 头文件和源文件的连接
  15. CodeForces入门
  16. 使用MATLAB进行频谱分析
  17. 《世嘉新人培训教材——游戏开发》踩到的坑2、读取图片文件
  18. David想对asc码进行位运算
  19. java 定时关机_「window定时关机命令」电脑定时关机命令,这个方法适用于win7及以下系统 - seo实验室...
  20. b+树时间复杂度_前端大神用的学习笔记:线段树和树状数组

热门文章

  1. 美国下一代宇宙飞船“猎户座”曝光 年底试飞
  2. 黄仁勋膨胀了,英伟达再也不是我们的小可爱了...
  3. leetcode第294场周赛巫师的总力量和——维护前缀和的前缀和
  4. MySQL(二):MySQL的介绍+事务+分类+MySQL引擎
  5. 27.(cesium之家)cesium接入百度影像地图
  6. vscode自动保存
  7. 使用POI将数据库导出为excel表格
  8. MySQL多表关系及多表查询
  9. 【JavaScript】JavaScript个人学习总结
  10. TPS5430输出-12V电路