資源簡介
MFC tabctrl控件重載, 實現標簽加載BMP圖片, 美化標簽. 花了很多積分,現在免費給好學者參考,不容易啊!

代碼片段和文件信息
//?baseTabCtrl.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“baseTabCtrl.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;
????m_bImg=false;
m_nCstrMaxLen=18;
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()
ON_WM_LBUTTONDBLCLK()
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CbaseTabCtrl?message?handlers
void?CbaseTabCtrl::SetBkgndColor(COLORREF?color)
{
//?set?new?color
m_crBack?=?color;
??
//?redraw
if?(GetSafeHwnd())
UpdateWindow();
}
void?CbaseTabCtrl::Inistyle(int?imgSelIDint?imgIDint?imgInfID)
{
Modifystyle(0?TCS_OWNERDRAWFIXED);
m_ImgSel.LoadBitmap(imgSelID);
m_Img.LoadBitmap(imgID);
m_ImgInf.LoadBitmap(imgInfID);?
m_bImg=true;
m_nDrawType=2;
UpdateWindow();
}
void?CbaseTabCtrl::Refash()
{
CRect?rClient;
GetClientRect(rClient);???
rClient.bottom=25;rClient.left=rClient.right-60;
????InvalidateRect(rClientfalse);
//UpdateWindow();
}
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);
UpdateWindow();
}
return?TRUE;
}
void?CbaseTabCtrl::DrawTabItem(CDC*?pDC?int?ixItem?const?CRect&?rcItemC?BOOL?uiFlags)
{
TC_ITEM?tci;???CString?sText;
tci.mask??????=TCIF_TEXT?|?TCIF_IMAGE;
tci.pszText???=sText.GetBuffer(128);
tci.cchTextMax=30;
GetItem(ixItem&tci);
sText.ReleaseBuffer();
BOOL?bSel???=?uiFlags;
// BOOL?bBottom=(uiFlags&8)?TRUE:FALSE;
CRect?rcItem=rcItemC;
// if(bSel)?rcItem.bottom?-=?1;
// else ?rcItem.bottom?+=?2;
///////////////////////////////////////////////
CDC?tempDC;
CBitmap?*m_bitmap;???BITMAP?bm;
tempDC.CreateCompatibleDC(pDC);
//printf(?“%d\n“?bSel?);
if(bSel)
{
if(GetItemState(ixItemTCIS_HIGHLIGHTED)==TCIS_HIGHLIGHTED)
{
m_bitmap=&m_ImgInf;
//printf(?“have?information\n“?);
}
else
{
m_bitmap=&m_Img;
//printf(?“normal\n“?);
}
}
else
{
m_bitmap=&m_ImgSel;//selected
//HighlightItem(ixItemfalse);
}
m_bitmap->GetBitmap(?&bm?);
tempDC.Selectobject(*m_bitmap);
pDC->StretchBlt(rcItem.leftrcItem.toprcItem.Width()rcItem.Height()&tempDC00bm.bmWidthbm.bmHeightSRCCOPY);
//////////////
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6635??2012-05-31?16:53??tabcontrol_demo?vs2010\tabcontrol_demo1\ba
?????文件???????2231??2012-05-31?16:45??tabcontrol_demo?vs2010\tabcontrol_demo1\ba
?????文件???????7425??2002-07-01?10:32??tabcontrol_demo?vs2010\tabcontrol_demo1\EnTabCtrl.cpp
?????文件???????2089??2012-05-31?15:12??tabcontrol_demo?vs2010\tabcontrol_demo1\EnTabCtrl.h
?????文件???????3651??2001-12-01?11:03??tabcontrol_demo?vs2010\tabcontrol_demo1\ReadMe.txt
?????文件???????5494??2012-05-31?15:17??tabcontrol_demo?vs2010\tabcontrol_demo1\res\bitmap_i.bmp
?????文件???????5494??2012-05-31?15:17??tabcontrol_demo?vs2010\tabcontrol_demo1\res\ss.bmp
?????文件???????5494??2012-05-31?15:18??tabcontrol_demo?vs2010\tabcontrol_demo1\res\ssSel.bmp
?????文件???????1078??2012-05-31?15:54??tabcontrol_demo?vs2010\tabcontrol_demo1\res\TabControl.ico
?????文件????????402??2001-12-01?11:03??tabcontrol_demo?vs2010\tabcontrol_demo1\res\TabControl.rc2
????..A.SH.?????16896??2012-05-31?15:54??tabcontrol_demo?vs2010\tabcontrol_demo1\res\Thumbs.db
?????文件???????1078??2002-07-01?10:27??tabcontrol_demo?vs2010\tabcontrol_demo1\res\Toolbar.bmp
?????文件???????1274??2012-05-31?15:54??tabcontrol_demo?vs2010\tabcontrol_demo1\resource.h
?????文件????????212??2001-12-01?11:03??tabcontrol_demo?vs2010\tabcontrol_demo1\StdAfx.cpp
?????文件????????999??2001-12-01?11:03??tabcontrol_demo?vs2010\tabcontrol_demo1\StdAfx.h
?????文件??????56280??2012-05-31?15:54??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.aps
?????文件???????1553??2002-02-01?11:47??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.clw
?????文件???????2086??2001-12-01?11:03??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.cpp
?????文件???????4599??2002-07-01?10:38??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.dsp
?????文件????????765??2002-07-01?10:38??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.dsw
?????文件???????1368??2001-12-01?11:03??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.h
?????文件???????6548??2012-05-31?15:54??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.rc
?????文件????????886??2015-01-11?01:38??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.sln
????..A..H.?????15872??2015-01-11?01:39??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.suo
????..A..H.??????9216??2005-12-20?16:44??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.suo.old
?????文件???????7933??2012-05-31?15:17??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.vcproj
?????文件???????1427??2012-05-31?16:53??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.vcproj.T37JKQGEELZP0X9.Administrator.user
?????文件???????8070??2015-01-11?01:37??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.vcxproj
?????文件???????2421??2015-01-11?01:37??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.vcxproj.filters
?????文件????????143??2015-01-11?01:37??tabcontrol_demo?vs2010\tabcontrol_demo1\TabControl.vcxproj.user
............此處省略10個文件信息
評論
共有 條評論