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

📄 skintabctrl.cpp

📁 If you are not using these features and wish to reduce the size
💻 CPP
字号:
// SkinTabCtrl.cpp : implementation file
//

#include "stdafx.h"
#include "dialog.h"
#include "SkinTabCtrl.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSkinTabCtrl

CSkinTabCtrl::CSkinTabCtrl()
{

	m_tabCurrent=0;
}

CSkinTabCtrl::~CSkinTabCtrl()
{
	for (int i=0;i<m_ImageArray.GetSize();i++ )
	{
		delete m_ImageArray[i];
	}
}


BEGIN_MESSAGE_MAP(CSkinTabCtrl, CStatic)
	//{{AFX_MSG_MAP(CSkinTabCtrl)
	ON_WM_ERASEBKGND()
	ON_WM_PAINT()
	ON_WM_LBUTTONDOWN()
	ON_WM_MOUSEMOVE()
	ON_WM_LBUTTONUP()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSkinTabCtrl message handlers
void CSkinTabCtrl::LoadBitmap(LPCTSTR szImagePath)
{
	m_bmpTabBk.LoadImage(szImagePath); 
}


BOOL CSkinTabCtrl::OnEraseBkgnd(CDC* pDC) 
{
	// TODO: Add your message handler code here and/or call default
	
	return TRUE;
}

void CSkinTabCtrl::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	CEnBitmap bmpTabBk;
	
	m_bmpTabBk.Draw( &dc, m_bmpTabBk.GetRect() );
	CEnBitmap *pBmpTabActive;
	pBmpTabActive=(CEnBitmap *)m_ImageArray[m_tabCurrent];
	CRect rc(0,m_tabCurrent*pBmpTabActive->GetHeight(), pBmpTabActive->GetWidth(),(m_tabCurrent+1)*pBmpTabActive->GetHeight());
	pBmpTabActive->StretchDraw(&dc,&rc,pBmpTabActive->GetRect() );	
}

void CSkinTabCtrl::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CRect rc = m_bmpTabBk.GetRect();	

	if ( point.y<44*4)
	{
		m_tabCurrent=point.y/(m_bmpTabBk.GetHeight()/4 );
		::SetCursor(AfxGetApp()->LoadCursor(IDC_HAND ));
		Invalidate();
		UpdateWindow();
	}	
	CStatic::OnLButtonDown(nFlags, point);
}

void CSkinTabCtrl::AddTab(LPCTSTR szImagePath)
{
	CEnBitmap *pBmp=new CEnBitmap();
	pBmp->LoadImage(szImagePath);
	m_ImageArray.Add(pBmp); 
}

void CSkinTabCtrl::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	if (point.y<44*4)
		::SetCursor(AfxGetApp()->LoadCursor(IDC_HAND ));

	CStatic::OnMouseMove(nFlags, point);
}

void CSkinTabCtrl::OnLButtonUp(UINT nFlags, CPoint point) 
{
	if (point.y<44*4)
		::SetCursor(AfxGetApp()->LoadCursor(IDC_HAND ));
	
	CStatic::OnLButtonUp(nFlags, point);
}

void CSkinTabCtrl::Clear()
{

	m_ImageArray.RemoveAll();
}

⌨️ 快捷键说明

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