CTabCtrl的问题!
case 4:
m_page1.ShowWindow(SW_HIDE);
m_page2.ShowWindow(SW_SHOW);
m_MngMsg_Tab.DeleteItem(0);
m_page2.Invalidate();
break;
case 5://搜索结果
m_MngMsg_Tab.InsertItem(_T( "2 "),0);
m_MngMsg_Tab.DeleteItem(1);
m_page1.ShowWindow(SW_SHOW);
m_page2.ShowWindow(SW_HIDE);
m_MngMsg_Tab.DeleteItem(1);
m_page1.Invalidate();
break;
default:
return;
}
我这个TabCtrl有2个标签,分别对应着m_page1,m_page2
现在通过switch case 控制其显示。同一时刻只显示一个page页,
所以如果不使用 m_MngMsg_Tab.DeleteItem(*);则TabCtrl的2个标头都会显示,而使用之后再次切换回来的时候标头就都没有了。
明白了吗?怎么解决这个问题?
[解决办法]
void CSymbolPointEd::OnTcnSelchangeSymbolTab(NMHDR *pNMHDR, LRESULT *pResult)
{
//显示当前选择项
if (m_nCurrent != m_tabCtrl.GetCurSel())
{
m_curTabPages[m_nCurrent]-> ShowWindow(SW_HIDE);
m_nCurrent = m_tabCtrl.GetCurSel();
m_curTabPages[m_nCurrent]-> ShowWindow(SW_SHOW);
m_curTabPages[m_nCurrent]-> SetFocus();
}
*pResult = 0;
}
[解决办法]
只显示一个标头?好像不行吧
[解决办法]
偶觉得你可以只保留一个标签作作样子,切换的时候把标签名由A换成B再由B换成A...