WEB开发网
开发学院软件开发VC 如何对 BCGControlBarPro 进行换肤 阅读

如何对 BCGControlBarPro 进行换肤

 2006-07-19 11:30:22 来源:WEB开发网   
核心提示:效果图图一我们知道使用VC开发大型的应用系统时,都会碰到一个界面设计和风格布局的问题,如何对 BCGControlBarPro 进行换肤,如果一切都重头开始设计和编写的话,将会是巨大的工作量,在BCG的例子中作了几处改动后,BCG就拥有了动态换肤的功能,在短时间内很难写出一个比较健壮功能强大的界面系统出来,对软件项目进

效果图

图一

我们知道使用VC开发大型的应用系统时,都会碰到一个界面设计和风格布局的问题。如果一切都重头开始设计和编写的话,将会是巨大的工作量。在短时间内很难写出一个比较健壮功能强大的界面系统出来。对软件项目进度也带来了不可预测的风险。在这种形势下BCG库就应运而生了。目前BCG可以做出诸如Visual Studio .Net 2003 ,Outlook等大型界面系统。几乎可以满足目前市场上绝大多数管理信息系统的界面要求。在我所看到的很多ERP,GSP等的MIS软件公司,都在采用BCG系统。该库非常稳定和易用。

随着 Mircorsoft WindowsXP 系统的推出,计算机世界已经进入个性化时代。用户对界面系统提出更高一层的要求。尽管BCG本身自带了Skin工程,但那个工程的功能还是非常弱的。主要表现在:

  1. 不能对标题栏,滚动条和 Windows 系统标准的窗口换肤;
  2. 没有丰富的界面元素提供下载。

本人使用Skin++库(www.uipower.com),在BCG的例子中作了几处改动后,BCG就拥有了动态换肤的功能。

我们在这里以BCGCBDotNetExample为例:

1、Skin头文件的包含在StdAfx.h中包含Skin库的头文件。

#include "SkinPlusPlus.h"

2、Skin库的加载:

BOOL CBCGCBDotNetExampleApp::InitInstance()
{
  ......
  InitializeSkin(_T("XPCorona.ssk"));
  ......
}

3、让BCG重新取下系统色:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
  ..................
  -----------------
  // Create menu bar:
  //-----------------
  if (!m_wndMenuBar.Create (this))
  {
    TRACE0("Failed to create menubar\n");
    return -1; // fail to create
  }
  m_wndMenuBar.SendMessage(WM_SYSCOLORCHANGE,0,0);
  ..................
}

4、工具条图标的透明色问题;

1 2  下一页

Tags:如何 BCGControlBarPro 进行

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接