资源简介
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\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个文件信息
相关资源
- 进程调度的设计与实现图形界面c++
- mfc_ListView/ListCtrl 实现点击表头排序与
- MFC课设高校教师信息管理系统论文
- 利用MFC开发的Activex指示灯控件
- MFC 自定义 MessageBox
- 员工管理系统源程序MFC+报告
- 基于mfcvc++6.0的图书馆管理系统
- 利用MFC实现的停车场模拟仿真程序
- MFC mschart绘制曲线、饼图、柱状小程序
- mfc 修改密码对话框
- MFC42U.DLL
- 计算机图形学——立方体旋转 VC MFC
- C++二叉树基于Mfc的程序开发
- MFC 日志记录
- 简单的n皇后基于MFC
- MFC 动态创建按钮
-
mfc通过xm
l文件生成word文档 - 任务管理器MFC实现
- MFC的·绘图代码,模仿CAD的界面是我找
- 将彩色图片转换为灰度图片mfc实现
- MFC基于多线程的聊天程序用了winsock套
- SiamFCdemo运行所需stats.mat文件
- 超市管理系统(MFC编写
- MFC五子棋,本地,网络,人机
- 银行家算法 MFC实现
- MFC对话框标题栏的隐藏和高度设置
- easysize MFC对话框大小自动调整
- 基于无限射频卡的饭卡充值系统MFC
- MFC modBus 读写串口
- MFC通过windowsAPI控制计算机关机,注销
评论
共有 条评论