资源简介
【此版本比上一个版本增加了按钮功能,并且对按钮进行了自绘。】
本项目在WNI8+VC6下编译通过。
clistctrl控件中添加复选框,编辑框,按钮;
可调整列高度及更改字体大小。
代码片段和文件信息
// HeaderCtrlCl.cpp : implementation file
//
#include “stdafx.h“
#include “test2222.h“
#include “HeaderCtrlCl.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CHeaderCtrlCl
CHeaderCtrlCl::CHeaderCtrlCl()
: m_R(171)
m_G(199)
m_B(235)
m_Gradient(8)
{
m_Format = ““;
m_Height = 1;
m_fontHeight = 15;
m_fontWith = 0;
m_color = RGB(000);
m_bShowCheckBox = FALSE;//是否显示复选框
m_bChecked = FALSE;//复选 框是否选 中
}
CHeaderCtrlCl::~CHeaderCtrlCl()
{
}
BEGIN_MESSAGE_MAP(CHeaderCtrlCl CHeaderCtrl)
//{{AFX_MSG_MAP(CHeaderCtrlCl)
ON_WM_PAINT()
ON_MESSAGE(HDM_LAYOUT OnLayout)
ON_WM_LBUTTONDBLCLK()
ON_WM_LBUTTONDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CHeaderCtrlCl message handlers
void CHeaderCtrlCl::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CHeaderCtrl::OnPaint()
CRect tRect;
int nItem;
nItem = GetItemCount();//得到有几个单元
for(int i = 0; i {
GetItemRect(i&tRect);//得到Item的尺寸
int R = m_RG = m_GB = m_B;
CRect nRect(tRect);//拷贝尺寸到新的容器中
nRect.left++;//留出分割线的地方
//绘制立体背景
for(int j = tRect.top;j<=tRect.bottom;j++)
{
nRect.bottom = nRect.top+1;
CBrush _brush;
_brush.CreateSolidBrush(RGB(R G B));//创建画刷
dc.FillRect(&nRect&_brush); //填充背景
_brush.Deleteobject(); //释放画刷
R-=m_Gradient;G-=m_Gradient;B-=m_Gradient;
if (R<0)R = 0;
if (G<0)G = 0;
if (B<0)B= 0;
nRect.top = nRect.bottom;
}
dc.SetBkMode(TRANSPARENT);
CFont nFont * nOldFont;
//dc.SetTextColor(RGB(2505050));
dc.SetTextColor(m_color);
nFont.CreateFont(m_fontHeightm_fontWith000FALSEFALSE000000_TEXT(“宋体“));//创建字体
nOldFont = dc.Selectobject(&nFont);
UINT nFormat = 1;
if (m_Format[i]==‘0‘)
{
nFormat = DT_LEFT;
tRect.left+=3;
}
else if (m_Format[i]==‘1‘)
{
nFormat = DT_CENTER;
}
else if (m_Format[i]==‘2‘)
{
nFormat = DT_RIGHT;
tRect.right-=3;
}
//将文字显示在一个适合的高度位置
TEXTMETRIC metric;
dc.GetTextMetrics(&metric);
int ofst = 0;
ofst = tRect.Height() - metric.tmHeight;
tRect.OffsetRect(0ofst/2);
dc.DrawText(m_HChar[i]&tRectnFormat);
dc.Selectobject(nOldFont);
nFont.Deleteobject(); //释放字体
}
//画头部剩余部分(没有标题的那部分)
CRect rtRect;
CRect clientRect;
GetItemRect(nItem - 1rtRect);
GetClientRect(clientRect); //当前(CHeaderCtrl)控件的大小
rtRect.left = rtRect.right+1;
rtRect.right = clientRect.right;
int R = m_RG = m_GB = m_B;
CRect nRect(rtRect);
//绘制立体背景
for(int j = rtRect.top;j<=rtRect.bottom;j++)
{
nRect.bottom = nRect.top+1;
CBrush _brush;
_brush.CreateSolidBrush(RGB(RGB));//创建画刷
dc.FillRect(&nRect&_brush); //填充背景
_brush.Deleteobject();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7187 2016-07-05 10:48 listctrl_Button\test2222_listctrl\HeaderCtrlCl.cpp
文件 1904 2016-07-08 11:42 listctrl_Button\test2222_listctrl\HeaderCtrlCl.h
文件 3781 2016-07-08 14:12 listctrl_Button\test2222_listctrl\ListCtrlButton.cpp
文件 1645 2016-07-08 13:46 listctrl_Button\test2222_listctrl\ListCtrlButton.h
文件 32132 2016-07-08 14:08 listctrl_Button\test2222_listctrl\ListCtrlCl.cpp
文件 5331 2016-07-08 11:43 listctrl_Button\test2222_listctrl\ListCtrlCl.h
文件 910 2016-07-04 15:49 listctrl_Button\test2222_listctrl\ListCtrlEdit.cpp
文件 1177 2016-07-04 15:48 listctrl_Button\test2222_listctrl\ListCtrlEdit.h
文件 2988 2016-07-04 14:50 listctrl_Button\test2222_listctrl\MyListCtrl.cpp
文件 1360 2016-07-04 14:05 listctrl_Button\test2222_listctrl\MyListCtrl.h
文件 3615 2016-07-04 13:30 listctrl_Button\test2222_listctrl\ReadMe.txt
文件 22831 2016-07-08 11:42 listctrl_Button\test2222_listctrl\Release\HeaderCtrlCl.obj
文件 13375 2016-07-08 14:12 listctrl_Button\test2222_listctrl\Release\ListCtrlButton.obj
文件 55764 2016-07-08 14:08 listctrl_Button\test2222_listctrl\Release\ListCtrlCl.obj
文件 8048 2016-07-08 10:47 listctrl_Button\test2222_listctrl\Release\ListCtrlEdit.obj
文件 12809 2016-07-08 10:47 listctrl_Button\test2222_listctrl\Release\MyListCtrl.obj
文件 3891 2016-07-08 10:47 listctrl_Button\test2222_listctrl\Release\StdAfx.obj
文件 249856 2016-07-08 14:38 listctrl_Button\test2222_listctrl\Release\test2222.exe
文件 9635 2016-07-08 13:50 listctrl_Button\test2222_listctrl\Release\test2222.obj
文件 7667944 2016-07-08 10:47 listctrl_Button\test2222_listctrl\Release\test2222.pch
文件 8580 2016-07-08 13:50 listctrl_Button\test2222_listctrl\Release\test2222.res
文件 24099 2016-07-08 14:38 listctrl_Button\test2222_listctrl\Release\test2222Dlg.obj
文件 66560 2016-07-08 14:38 listctrl_Button\test2222_listctrl\Release\vc60.idb
文件 1078 2016-07-04 13:30 listctrl_Button\test2222_listctrl\res\test2222.ico
文件 400 2016-07-04 13:30 listctrl_Button\test2222_listctrl\res\test2222.rc2
文件 778 2016-07-08 13:48 listctrl_Button\test2222_listctrl\resource.h
文件 210 2016-07-04 13:30 listctrl_Button\test2222_listctrl\StdAfx.cpp
文件 1238 2016-07-04 16:39 listctrl_Button\test2222_listctrl\StdAfx.h
文件 35704 2016-07-08 13:48 listctrl_Button\test2222_listctrl\test2222.aps
文件 2071 2016-07-08 13:48 listctrl_Button\test2222_listctrl\test2222.clw
............此处省略18个文件信息
- 上一篇:accelerated c++ 英文版及源码
- 下一篇:MFC 约瑟夫环演示程序
相关资源
- MFC自绘按钮(Button)的dll加源码,也
- VC6.0将ListCtrl中数据写入到Excel
- MFC中ListCtrl添加图标,更改图标
- C++_MFC的CButtonST含使用说明书及多个
- MFC实现Button控件打开本地照片显示在
- MFC 之 CButton 控件重绘GDI+篇
- 可以改变ListCtr控件中的显示颜色和背
- MFC ListCtrl控件上增加Comb以及可编写子
- MFC BUtton按钮自绘
- mfc下导出listctrl数据到excel表格
- png格式透明MFC自绘按钮
- 重写CListCtrl类,行颜色显示,列自动
- 在ListCtrl列表控件中添加edit和combo
- SuperGrid-MFC_ListCtrl控件扩展(让ListCt
- mfc各种自绘漂亮Button 也用带位图按钮
- MFC可编辑列表框控件
- 重绘CListCtrl的scrollbarheaderctrl和items的
- MFC的CheckBox自绘类
- MFC特强大CListCtrlEx支持插入控件、设置
- CGridListCtrlEx源码vc++
- MFC CheckBox 自绘实现
- MFC连接SqlServer数据库,并将查询的数
- MFC按钮美化
- MFC重绘Button为圆形。
- MFC的一个很强大的LIstCtrl类很漂亮,类
- mfc_ListView/ListCtrl 实现点击表头排序与
- VC 2015 MFC 图片列表ListCtrl
- MFC读取txt,分割显示到listctrl控件上
- MFC中实现不同行高的CListCtrl
- MFC BUTTON按钮控件,设置按钮透明,按
评论
共有 条评论