我的CListCtrl是自绘的,现在我想自绘CHeaderCtrl。
我生成一个CMyHeaderCtrl
可怎样将CListCtrl中的HeaderCtrl换掉,同时实现自绘我的代码段CMyHeaderCtrl m_header ;
void CTestListCtrl::PreSubclassWindow()
{
CListCtrl::PreSubclassWindow();
if (m_bHeaderIsSubclassed)
return ;
// TODO:  Add your specialized creation code here
m_bHeaderIsSubclassed = true ;
CHeaderCtrl* pHeader = GetHeaderCtrl();
if (pHeader)
{
VERIFY(m_header.SubclassWindow(pHeader->m_hWnd));

}
}可是m_header 中的drawItem 和onDrawITem 没有执行
OnPaint执行了.
HeaderCtrl的自绘属性如何设呀,我的代码有问题吗???

解决方案 »

  1.   

    设置第nCol列的自绘属性
    HD_ITEM hditem;
    hditem.mask = HDI_FORMAT;
    m_lst.GetHeaderCtrl()->GetItem(nCol, &hditem);
    hditem.fmt |= HDF_OWNERDRAW;
    m_lst.GetHeaderCtrl()->SetItem(nCol, &hditem);
      

  2.   

    zwvista(球迷程序员) ( )
    好象不行呀!
    不过我在网上找到了一个例子,我还没有时间看,我明白之后再告诉大家
      

  3.   

    m_list.ModifyStyle(LVS_TYPEMASK, LVS_AUTOARRANGE|LVS_SORTASCENDING|LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS);
    m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);