资源简介

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_NONE || 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\baseTabCtrl.cpp

     文件       2231  2012-05-31 16:45  tabcontrol_demo vs2010\tabcontrol_demo1\baseTabCtrl.h

     文件       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个文件信息

评论

共有 条评论