⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainrebar.cpp

📁 c++系统开发实例精粹内附的80例源代码 环境:windows2000,c++6.0
💻 CPP
字号:
// MainRebar.cpp: implementation of the CMainRebar class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MainRebar.h"
#include "resource.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

////////////////////////////////////////////////////////////////
// CMainRebar
//

IMPLEMENT_DYNAMIC(CMainRebar, CCoolBar)

////////////////////////////////////////////////////////////////
// This is the virtual function you have to override to add bands
//

BOOL CMainRebar::OnCreateBands()
{
	////////////////////////////////////////////////////////////
	// Create menu bar
	////////////////////////////////////////////////////////////
	if (!m_wndMenuBar.Create(this, WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|
		CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC|CBRS_FLYBY|CBRS_ORIENT_HORZ) ||
		m_wndMenuBar.LoadMenu(IDR_MAINFRAME))
	{
		TRACE0("Failed to create menu bar\n");
		return -1;      // fail to create
	}

	CRect rc;
	m_wndMenuBar.GetItemRect(0, &rc);
	CSize szMenu = m_wndMenuBar.CalcDynamicLayout(-1, LM_HORZ); // get min horz size
	m_wndMenuBar.ModifyStyle(0, TBSTYLE_TRANSPARENT);

	// create menu bar band.
	CSize szMin;
	szMin = CSize( szMenu.cx, rc.Height());
	if (!InsertBand(&m_wndMenuBar, szMin, 0x7ff))
		return FALSE;

	////////////////////////////////////////////////////////////
	// Create navigation tool bar
	////////////////////////////////////////////////////////////
	if (!m_navToolBar.Create(this, WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|
			CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC|CBRS_FLYBY|CBRS_ORIENT_HORZ) ||
		!m_navToolBar.LoadToolBar(IDR_NAVBAR))
	{
		TRACE0("Failed to toolbar\n");
		return -1;      // fail to create
	}

	// use transparent so coolbar bitmap will show through
	m_navToolBar.ModifyStyle(0, TBSTYLE_TRANSPARENT);

	CString		str;
	CImageList	imageList;
	CBitmap		bitmap;

	// Create and set the normal toolbar image list.
	bitmap.LoadBitmap(IDB_TOOLBAR_COLD);
	imageList.Create(22, 20, ILC_COLORDDB|ILC_MASK, 13, 1);
	imageList.Add(&bitmap, RGB(255,0,255));
	m_navToolBar.SetImageList(imageList.m_hImageList);
	imageList.Detach();
	bitmap.Detach();

	// Create and set the hot toolbar image list.
	bitmap.LoadBitmap(IDB_TOOLBAR_HOT);
	imageList.Create(22, 20, ILC_COLORDDB|ILC_MASK, 13, 1);
	imageList.Add(&bitmap, RGB(255,0,255));
	m_navToolBar.SetHotImageList(imageList.m_hImageList);
	imageList.Detach();
	bitmap.Detach();
	
	// set up each toolbar button
	str.LoadString(IDS_BACK);
	m_navToolBar.SetButtonText(m_navToolBar.CommandToIndex(ID_BACK), str);
	str.LoadString(IDS_FORWARD);
	m_navToolBar.SetButtonText(m_navToolBar.CommandToIndex(ID_FORWARD), str);
	str.LoadString(IDS_UP);
	m_navToolBar.SetButtonText(m_navToolBar.CommandToIndex(ID_UP), str);
	str.LoadString(IDS_CUT);
	m_navToolBar.SetButtonText(m_navToolBar.CommandToIndex(ID_CUT), str);
	str.LoadString(IDS_COPY);
	m_navToolBar.SetButtonText(m_navToolBar.CommandToIndex(ID_COPY), str);
	str.LoadString(IDS_PASTE);
	m_navToolBar.SetButtonText(m_navToolBar.CommandToIndex(ID_PASTE), str);
	str.LoadString(IDS_UNDO);
	m_navToolBar.SetButtonText(m_navToolBar.CommandToIndex(ID_UNDO), str);
	str.LoadString(IDS_DELETE);
	m_navToolBar.SetButtonText(m_navToolBar.CommandToIndex(ID_DELETE), str);
	str.LoadString(IDS_PROPERTIES);
	m_navToolBar.SetButtonText(m_navToolBar.CommandToIndex(ID_PROPERTIES), str);
	str.LoadString(IDS_TOGGLE);
	m_navToolBar.SetButtonText(m_navToolBar.CommandToIndex(ID_VIEW_TOGGLE), str);

	SetColors(::GetSysColor(COLOR_BTNTEXT),	::GetSysColor(COLOR_3DFACE));

	// add dropdown button.
	m_navToolBar.AddDropDownButton(ID_BACK, IDR_MFC_ROCKS, TRUE);
	m_navToolBar.AddDropDownButton(ID_FORWARD, IDR_MFC_ROCKS, TRUE);
	m_navToolBar.AddDropDownButton(ID_VIEW_TOGGLE, IDR_POPDOWN, TRUE);

	// Get minimum size of toolbar, which is basically size of one button
	CSize szHorz = m_navToolBar.CalcDynamicLayout(-1, LM_HORZ); // get min horz size
	CRect rcNav;
	m_navToolBar.GetItemRect(0, &rcNav);
	szMin = CSize( szHorz.cx+1, rcNav.Height()); 

	// create toolbar band. Use largest size possible
	if (!InsertBand(&m_navToolBar, szMin, 0x7fff, NULL, -1, TRUE))
		return FALSE;

	////////////////////////////////////////////////////////////
	// Create combo box and fill with data
	////////////////////////////////////////////////////////////
	CRect rcCombo(0,0,0,0);
	if (!m_wndCombo.Create(WS_VISIBLE|WS_CHILD|WS_VSCROLL|CBS_DROPDOWN|
		WS_CLIPCHILDREN|WS_CLIPSIBLINGS, rcCombo, this, IDC_MAINCOMBO))
	{
		TRACE0("Failed to combo box\n");
		return -1;      // fail to create
	}

	m_wndCombo.SetFont(GetFont());

	// create combo band
	szMin = CSize(150, rc.Height()+2);
	if (!InsertBand(&m_wndCombo, szMin, 0, _T("Address"), -1, TRUE))
		return FALSE;

//  Un-comment for background bmp.

//	bitmap.LoadBitmap(IDB_BACKGROUND);
//	SetBackgroundBitmap(&bitmap);
//	bitmap.Detach();

	return TRUE; // OK
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -