📄 tabviewctrl.cpp
字号:
// TabViewCtrl.cpp : implementation file
//
#include "stdafx.h"
#include "demo_devstudio.h"
#include "TabViewCtrl.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTabViewCtrl
CTabViewCtrl::CTabViewCtrl()
{
}
CTabViewCtrl::~CTabViewCtrl()
{
}
#define IDC_TABCTRLBAR 1000
BEGIN_MESSAGE_MAP(CTabViewCtrl, CControlBar)
//{{AFX_MSG_MAP(CTabViewCtrl)
ON_WM_CREATE()
ON_WM_WINDOWPOSCHANGED()
ON_WM_DESTROY()
//}}AFX_MSG_MAP
ON_MESSAGE(WM_TABRESIZE, OnTabResize)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTabViewCtrl message handlers
int CTabViewCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CControlBar::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_tabctrl.Create(WS_VISIBLE|WS_CHILD|TCS_BOTTOM|TCS_FOCUSNEVER|
TCS_TOOLTIPS|TCS_FIXEDWIDTH,
CRect(0,0,0,0), this, IDC_TABCTRLBAR))
{
TRACE0("Unable to create tab control bar\n");
return -1;
}
return 0;
}
void CTabViewCtrl::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos)
{
if (IsFloating())
m_tabctrl.MoveWindow( 5, 5, lpwndpos->cx-10, lpwndpos->cy-7 );
else if (IsHorzDocked())
m_tabctrl.MoveWindow( 17, 5, lpwndpos->cx-25, lpwndpos->cy-17 );
else
m_tabctrl.MoveWindow( 5, 20, lpwndpos->cx-17, lpwndpos->cy-31 );
PostMessage(WM_TABRESIZE); // 此语句在下面第二个改进中用到
CControlBar::OnWindowPosChanged(lpwndpos);
// TODO: Add your message handler code here
}
void CTabViewCtrl::OnDestroy()
{
CControlBar::OnDestroy();
// TODO: Add your message handler code here
}
LRESULT CTabViewCtrl::OnTabResize(WPARAM, LPARAM)
{
CRect rect;
GetClientRect(&rect);
CRect yy;
m_tabctrl.GetItemRect( 0, &yy );
CSize size;
size.cy=yy.Height();
size.cx=(rect.Width())/4;
m_tabctrl.SetItemSize(size);
Invalidate();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -