想做双层列头,于是派生了一个CHeaderCtrl,派生一个CListCtrl,处理派生list的PreSubclassWindow函数void CMultiHeadList::PreSubclassWindow()
{
CHeaderCtrl *pHeader = GetHeaderCtrl();
m_Header.SubclassWindow(pHeader->GetSafeHwnd());
}
如果list是有资源的,可以这样重绘列头,但是如果list是用Create动态创建的,在PreSubclassWindow里,GetHeaderCtrl()返回的始终是空指针,这种情况下如何把我派生的header绑定到list上?
{
CHeaderCtrl *pHeader = GetHeaderCtrl();
m_Header.SubclassWindow(pHeader->GetSafeHwnd());
}
如果list是有资源的,可以这样重绘列头,但是如果list是用Create动态创建的,在PreSubclassWindow里,GetHeaderCtrl()返回的始终是空指针,这种情况下如何把我派生的header绑定到list上?
在OnCreate里getheader看看
_AFX_THREAD_STATE* pThreadState = AfxGetThreadState();
if (pThreadState->m_pWndInit == NULL)
{
m_wndHeader.SubclassDlgItem(0, this);
}
暂时不想加OnCreate,因为这个多表头类要多处用到,有的有资源,有的没有资源。
{
_AFX_THREAD_STATE* pThreadState = AfxGetThreadState();
if (pThreadState->m_pWndInit == NULL)
{
m_Header.SubclassDlgItem(0, this);
}
}