《 BCG 原创 :系列 四》 为应用程序设置不同的风格
(1) 在CMainFrame::OnCreate的开始加入应用程序可视化的风格。
其函数如下:
CBCGPVisualManager::SetDefaultManager (RUNTIME_CLASS (manager));
其中manager的取值与风格对照如下:
CBCGPVisualManager |
MS Office 2000/VC++ 6.0 look |
CBCGPVisualManagerXP |
MS Office XP/Visual Studio.NET look |
CBCGPVisualManager2003 |
MS Office 2003 look |
CBCGPVisualManagerVS2005 |
Visual Studio 2005 look |
CBCGPWinXPVisualManager |
Native Windows XP/Vista/Windows 7 look. |
CBCGPVisualManager2007 |
MS Office 2007 look |
CBCGPVisualManagerVS2008 |
Visual Studio 2008 look |
CBCGPVisualManagerVS2010 |
Visual Studio 2010 look |
CBCGPVisualManager2010 |
MS Office 2010 look |
CBCGPVisualManagerScenic |
Windows 7 Ribbon look. |
|
|
(2)在设置 2007的风格之前,可以设置对应的颜色
CBCGPVisualManager2007::SetStyle(COLOR);
e.g.
CBCGPVisualManager2007::SetStyle(CBCGPVisualManager2007::VS2007_LunaBlue);
COLOR 的对应选项为:
CBCGPVisualManager2007::VS2007_LunaBlue |
蓝色 |
CBCGPVisualManager2007::VS2007_ObsidianBlack |
黑色 |
CCBCGPVisualManager2007::VS2007_Silver |
银色 |
CBCGPVisualManager2007::VS2007_Aqua |
|
实践:
- 添加菜单项,用于表示不同的风格
- 2. 为这五个菜单项添加消息映射
ON_COMMAND_RANGE(ID_VIEW_APPLOOK_2003,ID_VIEW_APPLOOK_2007_4, onMyAppLook)
- 3. 消息响应函数
(1)在CMainFram 类中添加声明
afx_msg void onMyAppLook(UINT id);
(2)实现 函数 onMyAppLook(UINT id)
使用到的方法:
CBCGPVisualManager2007::SetCustomColor((COLORREF)-1);
03风格:
CBCGPVisualManager::SetDefaultManager(RUNTIME_CLASS(CBCGPVisualManager2003));
07风格:(先设置颜色 ,再设置为07 风格)
CBCGPVisualManager2007::SetStyle(CBCGPVisualManager2007::VS2007_LunaBlue);
CBCGPVisualManager::SetDefaultManager(RUNTIME_CLASS(CBCGPVisualManager2007));
代码:
void CMainFrame::onMyAppLook(UINT id)
{
CBCGPVisualManager2007::SetCustomColor((COLORREF)-1);
switch(id)
{
case ID_VIEW_APPLOOK_2003:
CBCGPVisualManager::SetDefaultManager(RUNTIME_CLASS(CBCGPVisualManager2003));
break;
case ID_VIEW_APPLOOK_2007_1:
CBCGPVisualManager2007::SetStyle(CBCGPVisualManager2007::VS2007_LunaBlue);
CBCGPVisualManager::SetDefaultManager(RUNTIME_CLASS(CBCGPVisualManager2007));
break;
case ID_VIEW_APPLOOK_2007_2:
CBCGPVisualManager2007::SetStyle(CBCGPVisualManager2007::VS2007_ObsidianBlack);
CBCGPVisualManager::SetDefaultManager(RUNTIME_CLASS(CBCGPVisualManager2007));
break;
case ID_VIEW_APPLOOK_2007_3:
CBCGPVisualManager2007::SetStyle(CBCGPVisualManager2007::VS2007_Silver);
CBCGPVisualManager::SetDefaultManager(RUNTIME_CLASS(CBCGPVisualManager2007));
break;
case ID_VIEW_APPLOOK_2007_4:
CBCGPVisualManager2007::SetStyle(CBCGPVisualManager2007::VS2007_Aqua);
CBCGPVisualManager::SetDefaultManager(RUNTIME_CLASS(CBCGPVisualManager2007));
break;
}
}