-
大小: 17KB文件類型: .zip金幣: 2下載: 0 次發布日期: 2021-06-16
- 語言: C/C++
- 標簽: MFC??Tabcontrol??
資源簡介
標簽控件 界面美化效果,資源共享。值得學習

代碼片段和文件信息
//?baseTabCtrl.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“tabcontrol.h“
#include?“baseTabCtrl.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//?CbaseTabCtrl
CbaseTabCtrl::CbaseTabCtrl(int?nType)
{
m_crBack?=?(COLORREF)-1;?//?use?default?color
m_nDrawType?=?BTC_NONE;
EnableDraw(nType);
}
CbaseTabCtrl::~CbaseTabCtrl()
{
}
BEGIN_MESSAGE_MAP(CbaseTabCtrl?CTabCtrl)
//{{AFX_MSG_MAP(CbaseTabCtrl)
//?NOTE?-?the?ClassWizard?will?add?and?remove?mapping?macros?here.
//}}AFX_MSG_MAP
ON_WM_ERASEBKGND()
ON_WM_PAINT()
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CbaseTabCtrl?message?handlers
void?CbaseTabCtrl::SetBkgndColor(COLORREF?color)
{
//?set?new?color
m_crBack?=?color;
//?redraw
if?(GetSafeHwnd())
Invalidate();
}
BOOL?CbaseTabCtrl::EnableDraw(int?nType)
{
ASSERT?(nType?>=?BTC_NONE?&&?nType?<=?BTC_ALL);
if?(nType??BTC_ALL)
return?FALSE;
m_nDrawType?=?nType;
if?(GetSafeHwnd())
{
if?(m_nDrawType?!=?BTC_NONE)?
Modifystyle(0?TCS_OWNERDRAWFIXED);
else
Modifystyle(TCS_OWNERDRAWFIXED?0);
Invalidate();
}
return?TRUE;
}
void?CbaseTabCtrl::DrawItem(LPDRAWITEMSTRUCT?/*lpDrawItemStruct*/)
{
ASSERT?(0);
}
void?CbaseTabCtrl::DrawItemBorder(LPDRAWITEMSTRUCT?/*lpDrawItemStruct*/)
{
ASSERT?(0);
}
void?CbaseTabCtrl::DrawMainBorder(LPDRAWITEMSTRUCT?/*lpDrawItemStruct*/)
{
ASSERT?(0);
}
COLORREF?CbaseTabCtrl::GetTabColor(BOOL?/*bSelected*/)
{
return?::GetSysColor(COLOR_3DFACE);
}
COLORREF?CbaseTabCtrl::GetTabTextColor(BOOL?/*bSelected*/)
{
return?::GetSysColor(COLOR_WINDOWTEXT);
}
void?CbaseTabCtrl::PreSubclassWindow()?
{
CTabCtrl::PreSubclassWindow();
if?(m_nDrawType?!=?BTC_NONE)?
Modifystyle(0?TCS_OWNERDRAWFIXED);
}
BOOL?CbaseTabCtrl::OnEraseBkgnd(CDC*?pDC)?
{
CRect?rClient?rTab?rTotalTab?rBkgnd?rEdge;
COLORREF?crBack;
int?nTab?nTabHeight?=?0;
CTabCtrl::OnEraseBkgnd(pDC);
//?calc?total?tab?width
GetClientRect(rClient);
nTab?=?GetItemCount();
rTotalTab.SetRectEmpty();
while?(nTab--)
{
GetItemRect(nTab?rTab);
rTotalTab.UnionRect(rTab?rTotalTab);
}
nTabHeight?=?rTotalTab.Height();
//?add?a?bit
rTotalTab.InflateRect(2?3);
rEdge?=?rTotalTab;
//?then?if?background?color?is?set?paint?the?visible?background
//?area?of?the?tabs?in?the?bkgnd?color
//?note:?the?mfc?code?for?drawing?the?tabs?makes?all?sorts?of?assumptions
//?about?the?background?color?of?the?tab?control?being?the?same?as?the?page
//?color?-?in?some?places?the?background?color?shows?thru‘?the?pages!!
//?so?we?must?only?paint?the?background?color?where?we?need?to?which?is?that
//?portion?of?the?tab?area?not?excluded?by?the?tabs?themselves
crBack?=?(m_crB
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????3560??2002-07-01?10:28??TabControlDlg.cpp
?????文件????????5103??2002-02-01?11:20??ba
?????文件????????1770??2002-02-01?11:16??ba
?????文件????????7425??2002-07-01?10:32??EnTabCtrl.cpp
?????文件????????2089??2002-02-01?11:16??EnTabCtrl.h
?????文件????????1009??2002-07-01?10:27??resource.h
?????文件?????????212??2001-12-01?11:03??StdAfx.cpp
?????文件?????????999??2001-12-01?11:03??StdAfx.h
?????文件????????1553??2002-02-01?11:47??TabControl.clw
?????文件????????2086??2001-12-01?11:03??TabControl.cpp
?????文件????????4599??2002-07-01?10:38??TabControl.dsp
?????文件?????????765??2002-07-01?10:38??TabControl.dsw
?????文件????????1368??2001-12-01?11:03??TabControl.h
?????文件????????5762??2002-07-01?10:27??TabControl.rc
?????目錄???????????0??2002-02-01?11:31??res\
?????文件????????1498??2002-07-01?10:24??TabControlDlg.h
?????文件????????3651??2001-12-01?11:03??ReadMe.txt
?????文件?????????402??2001-12-01?11:03??res\TabControl.rc2
?????文件????????1078??2002-07-01?10:27??res\Toolbar.bmp
- 上一篇:最小二乘法擬合橢圓
- 下一篇:c++課程設計之圖書管理系統
評論
共有 條評論