在显示CListCtrl的标题栏显示多行文字

原创 2004年09月16日 16:37:00

来自:

http://www.codeproject.com/listctrl/headerctrlex.asp

代码列表:

MLHListCtrl.cpp, MLHListCtrl.h, HeaderCtrlEx.cpp, HeaderCtrlEx.h

适用环境:
VC6, VC.net
在对话框中显示(原文已经提供了在MDI中的例子)

用法:

0. 解决方案/添加/添加现有项/
 添加进
HeaderCtrlEx 和 MLHListCtrl 的 cpp,h

1. 在要实现多行标题的ListCtrl所在的Dlg的Dlg.h开头
#include "MLHListCtrl.h"

2. 在上述Dlg.h中找到
CListCtrl m_lvwXXX;
替换成
CMLHListCtrl m_lvwXXX;
// 上面m_lvwXXX 是控件对应的变量

3. 在对应的Dlg.cpp中找到
OnInitDialog()中
m_lvwXXX.InsertColumn(....)一段
替换成类似下面的代码
 CStringArray ColumnHeader;
 ColumnHeader.Add("/nCol1/nLn1/n");
 ColumnHeader.Add("/nCol2/nLn1/n");
 ColumnHeader.Add("/nCol3/nLn1/n");
 int colWidth[] = { 60, 200, 100 };
 m_lvwXXX.InitControlHeadings(ColumnHeader, colWidth);


Note: 这里显示的是3行标题(第1行用来'/n').
调整标题栏的高度在
CMLHListCtrl::InitControlHeadings(...)
中的
m_cfontNewHeaderFont.CreatePointFont(190,"MS Serif");
调整数字190(两行)适应多行的情形

修改 CListCtrl 的标题栏颜色;重写 CListCtrl 标题栏

在网上找了好久都没结果,后终于找到一个全部贴图的,稍微修改下就变成时修改颜色的1.要重写CListCtrl组件。2.在里面增加修改标题栏的类。3.在这个类里面重写OnPaint()函数。 ------...
  • darkduck9989
  • darkduck9989
  • 2007年10月17日 21:05
  • 3753

CListCtrl控件(4)重绘CListCtrl控件的标题栏

CListCtrl控件的标题栏默认是灰色的,如果和旁边的颜色不搭配,想要修改它的颜色,如何做呢?下面给出了实现方法。 1.从CHeaderCtrl继承,新建一个类,在这里我把新建的这个类命名为CCo...
  • wang_390486690
  • wang_390486690
  • 2011年09月13日 11:38
  • 813

CListCtrl自绘

一:custom draw 自行绘制 ClistCtrl 的列表项,可以利用列表框的 NM_CUSTOMDRAW 消息,该消息由控件向它的父窗口发送,告诉父窗口它的绘图操作。     如果...
  • weiqubo
  • weiqubo
  • 2011年11月26日 16:47
  • 3514

CListCtrl 改变列名

//ClistCtrl m_list; CHeaderCtrl *pHead = m_list.GetHeaderCtrl(); if(pHead && pHead->GetSafeHwnd(...
  • CButtonST
  • CButtonST
  • 2011年12月08日 00:56
  • 2738

clistctrl 中如何换行

1.定义消息映射函数h文件: afx_msg void OnCustomdraw(NMHDR* pNMHDR, LRESULT* pResult);cpp文件: ON_NOTIFY_REFLECT (...
  • ablo_zhou
  • ablo_zhou
  • 2004年08月05日 09:46
  • 5515

MFC CListCtrl 数据库内容显示相关

1、MySQL_ROW row;​ row=mysql_fetch_row(result); MYSQL_ROW 类型表示的是记录集里的一条数据,假如你的数据表里有10个字段,则 row[0]...
  • u010385646
  • u010385646
  • 2015年05月25日 21:38
  • 906

解决listCtrl 无法显示列头的问题

// TODO: 在此添加额外的初始化代码 CRect rect; m_taskList.GetClientRect(&rect); // //这一段能够解决listCtrl 无法显...
  • writeeee
  • writeeee
  • 2015年08月24日 10:38
  • 875

CListCtrl大数据显示

CListCtrl是个很方便的东西,但是当数据大到一个程度(比如说10万条数据),显示速度就会非常的慢。解决办法就是用虚拟列表。CListCtrl显示数据的原理是将需显示的所有数据拷贝在它内部的一块空...
  • guoguojune
  • guoguojune
  • 2015年09月24日 09:40
  • 1331

CListCtrl和CImageList配合显示缩略图

#pragma once #include "afxcmn.h" #define  THUMBNAIL_WIDTH 50 #define  THUMBNAIL_HEIGHT 50 // CDial...
  • zishuiyi
  • zishuiyi
  • 2014年03月03日 10:45
  • 1991

改变 自绘 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景及其动态创建中的问题

以下是网上流传自绘CListCtrl控件的方法:不过有几个问题需要注意一下: 以下功能在静态创建时没有问题,动态创建是会出现两个问题 一.控件的表没有自动重绘,没有实现换肤。在CListCtrlC...
  • chenyixin121738
  • chenyixin121738
  • 2016年12月10日 09:14
  • 1551
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在显示CListCtrl的标题栏显示多行文字
举报原因:
原因补充:

(最多只允许输入30个字)