如何禁用ClistCtrl对象标题分隔符的拖动(即各个列头的宽度不能改变),如何设置?需要用那个函数?

解决方案 »

  1.   

    参考
    http://www.80diy.com/home/20000615/11/11937.html
      

  2.   

    继承CListCtrl和CHeaderCtrl,比如派生类为CMyListCtrl和CMyHeaderCtrl
    在CMyListCtrl中重载PreSubclassWindow()函数,在该函数中子类化CMyHeaderCtrl
    在CMyHeaderCtrl中重载OnChildNotify(UINT msg,WPARAM wp,LPARAM lp,LRESULT* pRes) 函数
    在该函数中:
    HD_NOTIFY  *phdn = (HD_NOTIFY*)lp;   
    if((phdn->hdr.code==HDN_BEGINTRACKA||phdn->hdr.code==HDN_BEGINTRACKW)   
        &&(phdn->iItem==0||phdn->iItem==1||phdn->iItem==2))   
    {   
        //禁止列0,1,2被拖动   
        return   *pRes=TRUE;   
      

  3.   

    datoucaicai还要继承CheaderCtrl么?我直接重载OnNotify 就可以了。
      

  4.   

    daotoucaicai 在么,能不能把你油箱给我,我有个问题想让你帮我看看,是关于列表控件中进度条重绘的问题。
      

  5.   

    //表头可以拉伸,但有一个最小宽度80的限制。//CMyHeaderCtrl中重载OnChildNotify中:
    if((phdn->hdr.code==HDN_ITEMCHANGINGW||phdn->hdr.code==HDN_ITEMCHANGINGA)     
         &&phdn->pitem->cxy<80)
    {            
        phdn->pitem->cxy = 80;
        return   TRUE;                 
    }e-mail:[email protected]
      

  6.   

    他绘列表,我也问个,绘列表头,CHeaderCtrl时,无论用GetClientRect还是lpdrawstruct->rcItem,得的rect,
    用CBrush刷它,刷的部分为什么还有残留,就是还有边框的地方没刷,也处理过OnNcPaint,没作用