在MFC单文档应用程序中删除列表视图的列

本文档介绍了如何在MFC单文档应用程序中删除列表视图的列,包括对话框中和单文档中的处理方式。在单文档程序中遇到的问题是无法直接通过CListCtrl::DeleteColumn()获取列数,解决方法是使用::SendMessage()发送LVM_GETITEMCOUNT消息获取列数,或者利用DeleteColumn()的返回值进行删除操作。
摘要由CSDN通过智能技术生成

1、对话框中的列表视图控件       

         在写一些数据库程序的时候经常会用到网格报表类型的列表视图控件。这个控件对于对话框程序来说和使用其它控件并没有多大区别。首先将其View属性设置为Report类型;然后为其关联一个CListCtrl控件类型的成员变量;最后在初始化对话框函数中设置其扩展类型为网格类型,并为其添加列。

        但是,对于一个具有一定灵活性的程序来说,往往最初的列表视图控件列并不是一成不变的。我们通常将其封装到不同的函数中,在不同的命令下调用不同的布局函数,然后以不同的列表视图来呈现数据。例如,用户单击“患者信息”的时候,列表视图要以对应患者信息的列来呈现数据;当用户单击“诊疗信息”的时候,列表视图要以对应诊疗信息的列来呈现最近的诊疗情况。

        上面两个操作是在一个程序界面下完成的。这就遇到了一个问题:每当我们在列表视图中切换布局的时候,原先已有的列应该怎样处理?查看MSDN中CListCtrl的成员,可以找到CListCtrl::DeleteColumn()成员函数。在该函数下面的Example中,MSDN提供了一个删除所有列的代码。该代码如下所示。

int nColumnCount = m_myListCtrl.GetHeaderCtrl()->GetItemCount();

// Delete all of the columns.
for (int i=0; i < nColumnCount; i++)
{
   m_myListCtrl.DeleteColumn(0);
}


        该代码是显而易见的,首先得到列表视图的列数,然后循

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值