📄 beautytabctrlex.h
字号:
#ifndef AFX_BEAUTYTABCTRLEX_H__FBI_MAN__INCLUDED_
#define AFX_BEAUTYTABCTRLEX_H__FBI_MAN__INCLUDED_
#ifdef SKINBEAUTY_LIB_EXPORT
#define SKINBEAUTY__CLASS __declspec(dllexport)
#else
#define SKINBEAUTY__CLASS __declspec(dllimport)
#endif
//********************************************************************
//*****************************NOTICE*********************************
//the extend-class is bad-designed, with bad-mechanism,
//without any tested. it's just for a demo only,
//and the extend-class just in demo/test-Debug-version,
//if you(client) want, we could send you the source.
//********************************************************************
//********************************************************************
#include <deque>
using std::deque;
#define CLASSNAME_LEFT_TAB_EX _T("SKIN_BEAUTY_TAB_EX")
class TTabInfo
{
public:
TTabInfo()
{
m_szTip = _T("");
m_szTab = _T("");
m_hIcon = NULL;
m_pWnd = NULL;
m_iTip = -1;
}
virtual ~TTabInfo()
{
if (m_hIcon)
{
DeleteObject(m_hIcon);
m_hIcon = NULL;
}
}
public:
int m_iTip;
CString m_szTip;
CString m_szTab;
HICON m_hIcon;
CWnd *m_pWnd;
};
class SKINBEAUTY__CLASS CBeautyTabCtrlEx : public CWnd
{
// Construction
public:
CBeautyTabCtrlEx();
virtual ~CBeautyTabCtrlEx();
public:
void SetBorderColor(COLORREF clrBorder); // 设置边框色
void SetTabBack(COLORREF clrBack); // 设置tab背景色
static void LoadTabBmps(TCHAR* szNormal, TCHAR* szOver, TCHAR* szSel); // 加载tab图片
BOOL CreateTab(CRect rtTab, CWnd *pParent, UINT uID); // 建立tab控件
BOOL AddOneTab(CWnd *pWnd, TCHAR* szTitle, HICON hIcon, TCHAR* szTip=NULL); // 添加一个tab页面
void GetCurTabRect(int iIndex, CRect &rtTab); // 获取指定索引tab的矩形
protected :
CString ASCIIToUnicode(CString szTemp); // 从ascII到Unicode的转化
void DrawColorTabs(CDC *pDC); // 画颜色tab
void DrawDownText(CDC *pDC, CRect rtText, CString szText); // 画竖形文本
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CBeautyTabCtrlEx)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL
protected:
void SetOver(int iIndex); // 设置over索引
void SetCur(int i); // 设置当前tab页面
void DrawContent(CDC *pDC, CRect rtTab, CString szTxt, BOOL bHaveIcon = FALSE); // 画文本
void DrawIcon(CDC *pDC, CRect rtTab, HICON hIcon); // 画图标
void DrawBmp(CBitmap *pBmp, CDC *pDC, RECT rtWnd); // 画位图
void ChangeSize(); // 窗体变化处理函数
void DrawTabs(CDC *pDC); // 画所有tab
void DrawBorder(CDC *pDC); // 画边框
//{{AFX_MSG(CBeautyTabCtrlEx)
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnPaint();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
static CBitmap *m_pTabNormal;
static CBitmap *m_pTabSel;
static CBitmap *m_pTabOver;
static COLORREF m_clrNormHigh; // 亮色
static COLORREF m_clrNormLow; // 暗色
static COLORREF m_clrOverHigh;
static COLORREF m_clrOverLow;
static COLORREF m_clrSelHigh;
static COLORREF m_clrSelLow;
private:
deque<TTabInfo*> m_dequeTab; // tab 数组
int m_iSel; // 当前显示Tab;
CRect m_rtClient; // 客户区矩形
int m_iTabWidth; // tab宽度
int m_iTabHeight; // tab高度
int m_iOver; // 当前鼠标移过那个Tab
CRect m_rtTemp;
int m_iIconWidth; // 显示图标的大小
int m_iFontSize; // tab字体的大小
CFont m_tFont;
int m_iStep; // 间距
COLORREF m_clrBack;
COLORREF m_clrLine;
BOOL m_bUseBmp;
CToolTipCtrl m_wndTip; // 工具栏提示
};
#endif //AFX_BEAUTYTABCTRLEX_H__FBI_MAN__INCLUDED_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -