隐藏ListCtrl中指定列(拖动不显示)

使用下面的类,将需要隐藏的列的列宽设为0,设置m_nHideColumn为需要隐藏的列即可
#pragma once


// CMyListCtrl

class CMyListCtrl : public CListCtrl
{
	DECLARE_DYNAMIC(CMyListCtrl)

public:
	CMyListCtrl();
	virtual ~CMyListCtrl();
	int m_nHideColumn;

protected:
	DECLARE_MESSAGE_MAP()
	virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
};



// MyListCtrl.cpp : 实现文件
//

#include "stdafx.h"
#include "test111.h"
#include "MyListCtrl.h"


// CMyListCtrl

IMPLEMENT_DYNAMIC(CMyListCtrl, CListCtrl)

CMyListCtrl::CMyListCtrl()
{
	m_nHideColumn=-1;
}

CMyListCtrl::~CMyListCtrl()
{
}


BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
END_MESSAGE_MAP()



// CMyListCtrl 消息处理程序




BOOL CMyListCtrl::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
	// TODO: 在此添加专用代码和/或调用基类
	HD_NOTIFY   *pHDNotify   =   (HD_NOTIFY*)lParam;   
    int m_nMinSize=0;
    if(   pHDNotify->iItem   ==   m_nHideColumn   )   
    {   
		switch(   pHDNotify->hdr.code   )   
		{   
			//   How   to   force   a   minimum   column   width   Cees   Mechielsen.   
			//   http://www.codeguru.com/mfc/comments/866.shtml   
			case   HDN_ITEMCHANGINGA:   
			case   HDN_ITEMCHANGINGW:   
			case   HDN_ENDTRACK:   
			{   
				if(   pHDNotify->pitem->mask   &   HDI_WIDTH   &&   
				pHDNotify->pitem->cxy   <   m_nMinSize   &&   
				pHDNotify->pitem->cxy   >=   0   )   
				{   
					pHDNotify->pitem->cxy   =   m_nMinSize; //   Set   the   column   width   
				}   
			}   
			break;   
    
			//   Prevent   CListCtrl   column   resizing   
			case   HDN_DIVIDERDBLCLICKA:   
			case   HDN_DIVIDERDBLCLICKW:   
			case   HDN_BEGINTRACKW:   
			case   HDN_BEGINTRACKA:   
			{   
				*pResult   =   TRUE;  //   disable   tracking   
				return   TRUE;                                     
											
			}   
		}   
    
    }   
	return CListCtrl::OnNotify(wParam, lParam, pResult);
}

禁止列宽拖动 原文: http://blog.163.com/pirates_fish/blog/static/1833331502011919425065/
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值