CListCtrl隐藏某一列并不允许手动调整该列宽

1、将要隐藏列的列宽设置为0

        m_ctrlList.SetColumnWidth(i, 0);    //i为要隐藏的列的索引

2、禁止手动调整列宽

        添加HDN_BEGINTRACK事件响应函数:

        void CXXX::OnHdnBegintrackList(NMHDR *pNMHDR, LRESULT *pResult)
        {
            LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR);
            // TODO: 在此添加控件通知处理程序代码

            *pResult = 0; 
         } 

        在函数中修改代码:

        void CXXX::OnHdnBegintrackList(NMHDR *pNMHDR, LRESULT *pResult)
        {
            LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR);
            // TODO: 在此添加控件通知处理程序代码

            if((phdr->iItem == i)      //i为要隐藏的列的索引 
            { 
                *pResult = 1; 
            } 
            else 
            { 
                *pResult = 0; 
            } 
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章