Если вы хотите свой собственный CMFCHeaderCtrl (например, m_myHeaderCtrl, полученный из CMFCHeaderCtrl), вы должны переопределить эти три функции в своем собственном CMFCListCtrl
CMFCHeaderCtrl& CMyMFCListCtrl::GetHeaderCtrl()
{
return m_myHeaderCtrl;
}
void CMyMFCListCtrl::InitHeader()
{
// Initialize header control:
m_myHeaderCtrl.SubclassDlgItem(0, this);
}
void CMyMFCListCtrl::OnSize(UINT nType, int cx, int cy)
{
CListCtrl::OnSize(nType, cx, cy);
if (myHeaderCtrl.GetSafeHwnd() != NULL)
{
myHeaderCtrl.RedrawWindow();
}
}
Теперь у вас есть полный отклик в вашем собственном myHeaderCtrl, определяющий еще несколько функций
(например, несколько строк в заголовке):
OnDrawItem(CDC* pDC, int iItem, CRect rect, BOOL bIsPressed, BOOL bIsHighlighted);
или определение собственного макета с помощью
afx_msg LRESULT OnHeaderLayout(WPARAM wp, LPARAM lp);
Примеры приведены в коде MFC.