- 浏览: 71205 次
- 性别:
- 来自: 上海
文章分类
最新评论
CListCtrl的表头可以单独使用,类CHeaderCtrl封装了这一功能.
1. 构造表头
和所有控件一样,都通过Create函数创建对象,Create函数的原型如下:
virtual BOOL Create(DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID)
参数说明:
rect是表头控件所在位置;
pParentWnd是表头的父窗体的指针,
nID是表头的资源ID号;
dwStyle是表头的风格样式,有下列值组合:
HDS_BUTTONS 表示表头控制外观类似按钮;
HDS_HORZ 表示表头控制为水平排列;
HDS_VERT 表示表头控制为垂直排列;
HDS_HIDDEN 表示表头控制为隐藏模式。
CCS_BOTTOM 设置控制位置在父窗口的底部并与父窗口同样宽度;
CCS_NODIVIDER 在控制顶部形成两个像素的高亮区;
CCS_NOHILITE 在控制顶部形成一个像素的高亮区;
CCS_NOMOVEY 在响应WM_SIZE消息时重置大小并水平排列;
CCS_NOPARENTALIGN 使控制自动靠近父窗口的顶部或底部;
CCS_NORESIZE 设置初始大小或新值时使控制使用默认宽度和高度;
CCS_TOP 设置在父窗口客户区域的顶部并与父窗口同样宽度;
也可以使用WND的风格.
创建了表头以后使用InsertItem添加列项,InsertItem函数原型如下:
int InsertItem(int nPos, HDITEM* phdi )
参数说明:
nPos是列序号,也就是列项在表头中的位置
phdi是一个结构体,列的属性取决于该结构体的设置,结构体原型是:
typedef struct _HD_ITEM
{
UINT mask; //结构成员有效控制位
int cxy; //表头项目的宽度
LPSTR pszText; //表头项目内容
HBITMAP hbm; //表头项目的位置句柄
int cchTextMax; //表头内容字符串长度
int fmt; //表头项目的格式
LPARAM lParam; //应用程序定义的32位数据
} HD_ITEM;
通常设置mask,cxy,pszText和fmt四个域.
mask设置以下值或值的组合表示如下含义:
HDI_BITMAP hbm成员有效
HDI_FORMAT fmt 成员有效
HDI_LPARAM lParam成员有效
HDI_TEXT pszText 和cchTextMax 成员有效
HDI_WIDTH cxy 成员有效并确定项目宽度值
fmt设置以下值或值的组合表示如下含义:
HDF_CENTER 表头项目居中
HDF_LEFT 表头项目左对齐
HDF_RIGHT 表头项目右对齐
HDF_BITMAP 表头显示一个位图
HDF_OWNERDRAW 由主窗口自绘表头项目
HDF_STRING 表头项目为一个字符串
其它成员函数不在此说明,请参考MSDN.
2. 控制表头
可以通过三个常用的消息控制表头,分别是:
HDN_ITEMCLICK 鼠标左键单击表头中的列
NM_RCLICK 鼠标右键单击表头中的列,右键弹出菜单可以在此消息的控制函数中实现
HDN_ITEMCHANGED 拖动列的边界,改变列大大小
这三个消息都以ON_NOTIFY()发送,消息处理函数原型为void FunName(NMHDR* pNMHDR, LRESULT* pResult)
在消息处理函数中,通过成员函数GetHeaderCtrl()获得表头的指针pHead,调用成员函数GetItem()获得属性值,给一示例:
NMHEADER *pHdr = (NMHEADER*)pNMHDR;
CHeaderCtrl *pHeader = m_cListCtrl.GetHeaderCtrl();
HDITEM hdi;
hdi.mask = HDI_WIDTH;
pHeader->GetItem(pHdr->iItem, &hdi);
hdi.cxy就是触发消息的列的宽度.
还有许多消息可以控制表头,使用方法同上:
HDN_ITEMDBLCLICK 左键双击表头的列项
HDM_SETITEM 设置表头列的属性
HDN_DIVIDERDBLCLICK 左键双击列与列的分割区域
更多的请参考MSDN的"Header Control Reference "
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bwmwm/archive/2008/07/24/2706663.aspx
发表评论
-
自己写的一段customerDraw
2010-08-24 16:20 1856void CNewReportPage::OnNMCustom ... -
帖BitMap
2010-08-24 09:42 746void CEx_14View::O ... -
clistctrl +号按钮绘制
2010-08-11 17:18 1521网上有关clistctrl举不胜举,包括按钮控件的绘 ... -
listctrl总结2
2010-08-11 17:11 94620. listctrl的subitem添加图标 ... -
VC中使用ListCtrl经验总结(1)
2010-08-11 17:07 1279ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用 ... -
LV_COLUMN结构体
2010-08-10 14:44 2637typedef struct _LV_COLUMN {UINT ... -
加载位图BITMAP
2010-08-10 14:27 1402m_Bitmap.LoadBitmap(IDB_BITMAP1 ... -
关于控件重绘函数/消息 OnPaint,OnDraw,OnDrawItem,DrawItem的区别
2010-08-10 13:15 6377而OnPaint()是CWnd的类成员,同时负责响应WM_ ... -
listctrl 重绘
2010-08-10 10:15 1013common control 4.7版本介绍 ... -
OnCreate PreCreateWindow PreSubclassWindow
2010-08-09 17:47 1723OnCreate PreCreateWindow PreSub ... -
扩展CListCtrl实现颜色长度改变
2010-08-09 17:34 3164用CListCtrl来显示数据比较方便,有时候我们需要标注某一 ... -
创建CListCtrl中的排序小图标
2010-08-09 17:11 2272创建CListCtrl中的排序小图标 for(int i = ... -
CListCtrl控件的使用
2010-08-09 17:02 1155初始化: DWORD dwStyle; dwStyle = m ... -
改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景
2010-08-09 16:49 2566改变 CListCtrl、CHeaderCtrl 高度、字体、 ... -
CListCtrl::SortItems的用法:
2010-08-09 12:37 1955CListCtrl::SortItems的用法: (一)So ... -
树型视的三个结构TVINSERTSTRUCT、TVITEM、NMTREEVIEW
2010-08-05 18:11 953TVINSERTSTRUCT包含添加新项到树形视控件所使用的信 ... -
剪贴板和OLE拖放
2010-08-05 16:35 1084一、传统剪贴板 ... -
文档/视图结构中的各个部分是如何联系到一起的
2010-08-05 15:39 716文档/视图结构是MFC中最有特色而又有难度的部分,在这当中涉及 ... -
MFC一些函数区别
2010-08-05 13:43 1610GetMessagePos GetCursorPos的区别 ... -
LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义
2010-08-05 13:33 987UNICODE:它是用两个字节 ...
相关推荐
CHeaderCtrl与CListCtrl派生类
改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景的示例程序共享资料
改变CHeaderCtrl的高度、背景色、字体等
关于CListCtrl,CHeaderCtrl类的重写 可以改变VC,列表控件的样式
ClistCtrl 重绘 CHeaderCtrl 重绘 ScrollBar 重绘
1、ListCtrl和HeaderCtrl支持共用位图底图,可以整个应用程序使用同一张完整底图图片,完美实现换肤等需要; 2、ListCtrl和HeaderCtrl支持独立位图底图,绘制背景时各自使用自己的独立底图; 3、ListCtrl和...
该项目展示如何通过子类化 CListCtrl 为 CHeaderCtrl 控件,使其具备多行list 标题文字功能 如果想使用这段代码,只需要把 HeaderCtrlExt.h 和 HeaderCtrlExt.cpp文件到您的源代码。 此外,在你的CListView或...
以下的章节将综合地使用以上的方法,请读者朋友留心观察。 3.2 使用MFC类的既有函数 在界面美化的专题中,MFC也并非一无是处。MFC类对于界面美化也做了部分的努力,以下是一些可以使用的,参数说明略去。 CWinApp...
clistctrl header image
【最新】MFC, CListCtrl、CHeaderCtrl , 设置CListCtrl, 每一部分的字体、颜色和背景
CListCtrl 控件的排序 头部箭头 CHeaderCtrl的
VC CListCtrlCHeaderCtrl 字体 颜色 背景 VC CListCtrlCHeaderCtrl 字体 颜色 背景
改变CListCtrlCHeaderCtrl高度字体颜色和背景增强版,很好很给力
The MFC CListCtrl, Lock CHeaderCtrl.
支持: 1. 设置默认背景颜色,默认字体颜色,默认选中字体颜色,默认选中背景颜色(四种颜色) 2. 设置特定单元格的四种...下载后解压,将cpp和h文件添加到工程,然后定义CExListCtrl变量使用。和普通的listctrl一样。
CListCtrl、CHeaderCtrl 高度、字体、颜色和背景自定义
mfc 中列表控件头的设置(背景颜色,字体大小等) 以前的是有内存泄露的. 这里的修改了一下.. 没有内存泄露
CListCtrl控件背景颜色网格色彩,用CListCtrl来显示数据比较方便,有时候我们需要标注某一列或某一个单元格的背景和字体颜色,或者需要改变...通过改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景,重载函数实现!
使用重用类,可以轻松改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景,有vc6实例
1.基于MFC的CListCtrl和CHeaderCtrl类,进行重绘。 2.支持表头字体,颜色,宽度,背景设置。 3.支持行列数据的字体颜色,背景,大小,对齐,可编辑设置。 4.支持网格线,整体背景色设置。 可以基于"HeaderCtrlEx.h,...