MFC程序应用BCGControl界面效果

  vc6.0比较经典且运行环境要求较低,虽然是98年的产物,但仍被广泛应用,最近一直修改软件,可能是强迫症吧,一直觉得vc6生产的界面太丑太丑,就采用bcg的封装库来优化下,百度了好多方法都需要依赖bcg软件与vc6的安装并连接起来,比较麻烦,现在摸索出相对方便的改写方法,记录下来,以便将来不时之需,主要是将来根本不记得这些了,找不到记录就要重新摸索,哎呀,玛德想想都头疼。

真是费尽千辛万苦经过(至少焦躁5天,合肥这些天又那么热,真是大爷的躁上加躁!):
百度了几天寻找资源->
好不容易找到了发现不让下载->
去万能的 淘宝买csdn论坛账号->
下载后参照1610版本的帮助文档来使用2210版的资源(还是特么英文版的,难过到没脾气)  ->
参照帮助资源中的demo源码改写(硬是看了两天才勉强看懂)->
debug版本运行崩溃,又毫无头绪地浪费了一天没进度->
凭感觉对所有我认识的cwnd扩展类都采用宏定义为BCG来取代demo中的cpp文件内部直接继承(太特么麻烦了)->
这不,到大半夜我才捋清楚整个流程写出来        /end
 

1.在stdafx.h中添加(在这之前你要保证你的工程编译时连同stdafx.h头文件一同编译)

#pragma comment(lib, "BCGCBPRO2210.lib")
#include "BCG\BCGCBProInc.h"
//注:拷贝BCGCBPRO2210.dll及同名lib文件,BGC文件夹,皮肤dll文件到工程目录
//以下所列宏定义作用是通过宏定义直接将原生的vc工程的界面类转变为BCG改写类,不需再逐个改写原先工程中的每个原生类 
#define CFrameWnd CBCGPFrameWnd
#define CMDIFrameWnd CBCGPMDIFrameWnd
#define CMDIChildWnd CBCGPMDIChildWnd
#define CToolBar CBCGPToolBar
#define CStatusBar CBCGPStatusBar
#define CDialog CBCGPDialog
#define CWinApp CBCGPWinApp
#define CProgressCtrl CBCGPProgressCtrl
#define CScrollBar CBCGPScrollBar
#define CButton CBCGPButton    
#define CEdit CBCGPEdit
#define CListBox CBCGPListBox
#define CComboBox CBCGPComboBox
#define CListCtrl CBCGPListCtrl
#define CScrollView CBCGPChartView
#define CTreeCtrl CBCGPShellTree
#define CToolTipCtrl CBCGPToolTipCtrl
#define CSpinButtonCtrl CBCGPSpinButtonCtrl
#define CPropertyPage CBCGPPropertyPage
#define CHeaderCtrl CBCGPHeaderCtrl
//#define CFileDialog CBCGPFileDialog
//#define CBitmap CBCGPPngImage//以上两个BCG继承类编译不通过,可能并不是基础应用类
#define CFormView CBCGPFormView
#define CPropertySheet CBCGPPropertySheet

2.在app::InitInstance()中添加AfxEnableControlContainer();
 
3.在app::app()中添加SetVisualTheme(BCGP_VISUAL_THEME_OFFICE_2010_SILVER);
上方函数为BCG扩展类内部专用主题更换函数,函数参数为封装类内部宏定义,当前BCG版本主题共有以下几种:
(主题名称分别于宏定义对应,并依赖对应的style文件*.dll)
"Windows Native Theme"         BCGP_VISUAL_THEME_DEFAULT //无需附加dll支持
"MS Office 2007 Blue"         BCGP_VISUAL_THEME_OFFICE_2007_BLUE        BCGPStyle2007Luna2210.dll
"MS Office 2007 Black"         BCGP_VISUAL_THEME_OFFICE_2007_BLACK         BCGPStyle2007Obsidian2210.dll
"MS Office 2007 Silver"         BCGP_VISUAL_THEME_OFFICE_2007_SILVER        BCGPStyle2007Silver2210.dll
"MS Office 2007 Aqua"         BCGP_VISUAL_THEME_OFFICE_2007_AQUA        BCGPStyle2007Aqua2210.dll
"Visual Studio 2010"         BCGP_VISUAL_THEME_VS_2010                 //无需附加dll支持
"Carbon"                        BCGP_VISUAL_THEME_CARBON                                    BCGPStyle2007Obsidian2210.dll
//经实际测试发现 
BCGP_VISUAL_THEME_CARBON效果与 BCGP_VISUAL_THEME_OFFICE_2007_BLACK效果完全一样
"MS Office 2010 Blue"         BCGP_VISUAL_THEME_OFFICE_2010_BLUE        BCGPStyle2010Blue2210.dll
"MS Office 2010 Black"         BCGP_VISUAL_THEME_OFFICE_2010_BLACK        BCGPStyle2010Black2210.dll
"MS Office 2010 Silver"         BCGP_VISUAL_THEME_OFFICE_2010_SILVER        BCGPStyle2010White2210.dll
"Visual Studio 2012 Light"         BCGP_VISUAL_THEME_VS_2012_LIGHT         //无需附加dll支持
"Visual Studio 2012 Dark"         BCGP_VISUAL_THEME_VS_2012_DARK         //无需附加dll支持
"Visual Studio 2012 Blue"         BCGP_VISUAL_THEME_VS_2012_BLUE         //无需附加dll支持
"MS Office 2013 White"         BCGP_VISUAL_THEME_OFFICE_2013_WHITE         //无需附加dll支持
"MS Office 2013 Light Gray"         BCGP_VISUAL_THEME_OFFICE_2013_GRAY         //无需附加dll支持
"MS Office 2013 Dark Gray"         BCGP_VISUAL_THEME_OFFICE_2013_DARK_GRAY         //无需附加dll支持
//问题:2210版本的BCG中另有 
BCGPStyleCarbon2210.dll和BCGPStyleScenic2210.dll两个封装库未被使用到,原因暂时不详。

4.在每一个需要使用bcg风格的dlg.cpp中的dlg::dlg中追加 EnableVisualManagerStyle(TRUE,  TRUE);  

5.测试发现应用以上宏定义的扩展类时无法进行debug编译,只能release,原因不详
前后对比图:


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值