📄 bcgptabbedcontrolbar.cpp
字号:
// BCGPTabbedControlBar.cpp : implementation file
//
#include "stdafx.h"
#include "BCGPSlider.h"
#include "BCGPTabbedControlBar.h"
#include "BCGPMiniFrameWnd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
CBCGPTabWnd::Style CBCGPTabbedControlBar::m_StyleTabWnd = CBCGPTabWnd::STYLE_3D;
IMPLEMENT_SERIAL(CBCGPTabbedControlBar, CBCGPBaseTabbedBar, VERSIONABLE_SCHEMA | 2)
/////////////////////////////////////////////////////////////////////////////
// CBCGPTabbedControlBar
CBCGPTabbedControlBar::CBCGPTabbedControlBar (BOOL bAutoDestroy) : CBCGPBaseTabbedBar (bAutoDestroy)
{
}
CBCGPTabbedControlBar::~CBCGPTabbedControlBar()
{
}
BEGIN_MESSAGE_MAP(CBCGPTabbedControlBar, CBCGPBaseTabbedBar)
//{{AFX_MSG_MAP(CBCGPTabbedControlBar)
ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBCGPTabbedControlBar message handlers
//*******************************************************************************
int CBCGPTabbedControlBar::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
ASSERT_VALID (this);
if (CBCGPBaseTabbedBar::OnCreate(lpCreateStruct) == -1)
return -1;
CRect rectClient (0, 0, lpCreateStruct->cx, lpCreateStruct->cy);
ASSERT (m_pTabWnd == NULL);
m_pTabWnd = new CBCGPTabWnd;
CBCGPTabWnd* pTabWnd = (CBCGPTabWnd*) m_pTabWnd;
// Create tabs window:
if (!pTabWnd->Create (m_StyleTabWnd, rectClient, this, 101))
{
TRACE0("Failed to create tab window\n");
delete m_pTabWnd;
m_pTabWnd = NULL;
return -1; // fail to create
}
pTabWnd->AutoDestroyWindow (FALSE);
pTabWnd->HideSingleTab ();
pTabWnd->m_bEnableWrapping = TRUE;
return 0;
}
//*******************************************************************************
BOOL CBCGPTabbedControlBar::FloatTab (CWnd* pBar, int nTabID,
BCGP_DOCK_METHOD dockMethod,
BOOL bHide)
{
ASSERT_VALID (this);
ASSERT_VALID (pBar);
if (GetTabWnd ()->GetTabsNum () > 1)
{
return CBCGPBaseTabbedBar::FloatTab (pBar, nTabID, dockMethod, bHide);
}
return FALSE;
}
//*******************************************************************************
BOOL CBCGPTabbedControlBar::DetachControlBar (CWnd* pBar, BOOL bHide)
{
ASSERT_VALID (this);
ASSERT_VALID (pBar);
if (GetTabWnd ()->GetTabsNum () > 0)
{
return CBCGPBaseTabbedBar::DetachControlBar (pBar, bHide);
}
return FALSE;
}
//**************************************************************************************
BOOL CBCGPTabbedControlBar::CheckTabbedBarAlignment ()
{
return TRUE;
}
//**************************************************************************************
void CBCGPTabbedControlBar::GetTabArea (CRect& rectTabAreaTop,
CRect& rectTabAreaBottom) const
{
rectTabAreaTop.SetRectEmpty ();
rectTabAreaBottom.SetRectEmpty ();
if (IsTabLocationBottom ())
{
GetTabWnd ()->GetTabsRect (rectTabAreaBottom);
GetTabWnd ()->ClientToScreen (rectTabAreaBottom);
}
else
{
GetTabWnd ()->GetTabsRect (rectTabAreaTop);
GetTabWnd ()->ClientToScreen (rectTabAreaTop);
}
}
//**************************************************************************************
BOOL CBCGPTabbedControlBar::IsTabLocationBottom () const
{
return (GetTabWnd ()->GetLocation () == CBCGPTabWnd::LOCATION_BOTTOM);
}
//**************************************************************************************
void CBCGPTabbedControlBar::OnPressCloseButton ()
{
if (m_pTabWnd == NULL)
{
return;
}
int nVisibleTabNum = m_pTabWnd->GetVisibleTabsNum ();
if (nVisibleTabNum == 1)
{
CBCGPDockingControlBar::OnPressCloseButton ();
}
int nActiveTab = m_pTabWnd->GetActiveTab ();
m_pTabWnd->ShowTab (nActiveTab, FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -