📄 mainrebar.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 + -