• 大小: 17KB
    文件类型: .zip
    金币: 1
    下载: 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_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);

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  baseTabCtrl.cpp
     文件        1770  2002-02-01 11:16  baseTabCtrl.h
     文件        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

评论

共有 条评论