Visualization Manager

Fully implemented BCGControlBar Pro (MFC)

Fully implemented BCGSuite (MFC)

Fully implemented BCGControlBar for .NET

Visualization manager provides the functionality, that allows you to control look and feel of an application. It centralizes the drawing code for the most important GUI elements, such as toolbars, buttons, grippers and menus. User can switch between different screen themes at runtime. To create your own visualization manager, you need to create a new class derived from CBCGPVisualManager and implement the required drawing methods:

  • Ability to create and change at run-time application skins
  • Ability to implement your own skin
  • Ability to switch between default and custom visual managers

The following visualization managers are built-in:

CBCGPVisualManagerOffice 2000/Visual C++ 6.0 look
CBCGPVisualManagerXPOffice XP/Visual Studio.NET look
CBCGPVisualManager2003Office 2003 look
CBCGPVisualManagerVS2005Visual Studio 2005 look
CBCGPWinXPVisualManagerNative Windows look
CBCGPVisualManager2007Office 2007 look
CBCGPVisualManagerVS2008Visual Studio 2008 look
CBCGPVisualManagerVS2010Visual Studio 2010 look
CBCGPVisualManager2010Office 2010 look
CBCGPVisualManagerCarbon"Carbon" look
CBCGPVisualManagerVS2012Visual Studio 2012 look
CBCGPVisualManagerVS2013Visual Studio 2013-2017 look
CBCGPVisualManagerVS2019Visual Studio 2019 look
CBCGPVisualManager2013Office 2013 look
CBCGPVisualManager2016Office 2016 look
CBCGPVisualManager2019Office 2019 look
CBCGPVisualManager2022Office 2021-2022/365 look
CBCGPVisualManagerVS2022Visual Studio 2022 look

Visualization Manager

Sample code:

class CMyManager : public CBCGVisualManager 
{
	DECLARE_DYNCREATE(CMyManager)
	.....
 
	virtual void OnDrawBarGripper(
		CDC* pDC,  CRect rectGripper, 
		BOOL bHorz,  CControlBar* pBar);
}; 
 
IMPLEMENT_DYNCREATE(CBCGVisualManager)
 
void CMyManager::OnDrawBarGripper(
	CDC* pDC,  CRect rectGripper, 
	BOOL bHorz, CControlBar* pBar)
{
	// TODO: draw bar gripper
}
 
// Activate visual manager:
CBCGVisualManager::SetDefaultManager(
	RUNTIME_CLASS(CMyManager));