通过重写虚函数OnNotify实现,OnNotify函数是CListCtrl类中的虚函数,通过重载该函数,来修改ListCtrl控件的一些属性。
具体方法:
假设有类A:
class A : B {} class B:CListCtrl {}
在类A的头文件中:
//头文件中 virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
在类A的cpp文件中:
//禁止控件列宽可变 BOOL A::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 == Col) // Col—设定为自己不想改变的列值,比如Col=0,就是第1列 { *pResult = TRUE; return TRUE; } break; } return B::OnNotify(wParam, lParam, pResult); //注意这里 }
至此,我们类A中的ListCtrl控件的列宽便是固定不可变的了。(注意:OnNotify函数不需要我们自己去调用)