使MFC中的ListCtrl控件的列宽固定不可变

通过重写虚函数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函数不需要我们自己去调用)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值