请问个位高手,如何使得Clistview,ctreeview中带有自己定义的CHeaderCtrl控件,谢谢了。

解决方案 »

  1.   

    int CMyListView::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    if (CListView::OnCreate(lpCreateStruct) == -1)
    return -1; // TODO:  在此添加您专用的创建代码 return m_ctlHeader.SubclassDlgItem(0,this) ? 0 : -1;//CMyHeaderCtrl m_ctlHeader}
      

  2.   

    CMyHeaderCtrl m_Header;
    void CMyListView::OnInitialUpdate() 
    {
    CListView::OnInitialUpdate();

    // TODO: Add your specialized code here and/or call the base class

    HWND hwnd = ::GetDlgItem(m_hWnd, 0);
    if (hwnd)
    {
    CWnd* pHeader = CWnd::FromHandlePermanent(hwnd);
    if (pHeader)
    {
    if (!pHeader->IsKindOf(RUNTIME_CLASS(CMyHeaderCtrl)))
    {
    pHeader->Detach();
    m_Header.SubclassWindow(hwnd);
    }
    }
    else
    m_Header.SubclassWindow(hwnd);
    }
    }
      

  3.   

    CMyHeaderCtrl * p = new CMyHeaderCtrl;
    p->SubclassWindow(GetListCtrl().GetHeaderCtrl()->GetSafeHwnd());