码迷,mamicode.com
首页 > 编程语言 > 详细

MFC ClistCtr锁定隐藏某一列

时间:2019-06-07 13:11:08      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:处理   显示   result   大小   列表框   pre   color   turn   wpa   

      通过设置列的宽度为0, 可以隐藏列表框的某一列,但是用户通过拖动列表框的大小,隐藏的列,可能又被显示出来了。

     我们可以自己写一个CListEx继承CListCtr,然后捕获拖动的消息,对该消息进行特殊处理。

BOOL CListEx::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
    HD_NOTIFY     *pHDN = (HD_NOTIFY*)lParam;
    switch (((NMHDR*)lParam)->code)
    {
    case HDN_BEGINTRACKW://拖动  
    case HDN_BEGINTRACKA:
         // 设定为自己不想改变的列值
        if (pHDN->iItem == m_icolLock) 
        {
            *pResult = TRUE;
            return TRUE;
        }
        break;
    }
    return CListCtrl::OnNotify(wParam, lParam, pResult); 
}
// 设置要隐藏的列
void CListEx::LockColoum(int column)
{
    m_icolLock = column;
}

头文件添加:

virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);

 

MFC ClistCtr锁定隐藏某一列

标签:处理   显示   result   大小   列表框   pre   color   turn   wpa   

原文地址:https://www.cnblogs.com/ahcc08/p/10987862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!