我在对话框工程中,建立了一个CReBar,CReBar中添加了两个Bar,一个是普通的CToolBar,一个是CDialogBar,在CDialogBar中添加了控件TabCtrl。使用如下代码给TabCtrl加入item:在OnInitDialog()函数中////////////////////////////////////////////////////////////
m_pTabCtrl = (CTabCtrl*)m_wndDlgBar.GetDlgItem(IDC_PARAMTAB);
m_pTabCtrl->InsertItem(0, "参数组1");
////////////////////////////////////////////////////////////在OnParamGroupNew()函数中////////////////////////////////////////////////////////////
int nItemCount = m_pTabCtrl->GetItemCount(); // 在添加参数组10时就开始错!char szItem[8];
sprintf(szItem, "参数组%d", nItemCount+1);m_pTabCtrl->InsertItem(nItemCount, szItem);
m_pTabCtrl->SetCurSel(nItemCount);
TRACE("ItemCount: %d\n", nItemCount);////////////////////////////////////////////////////////////代码运行后,TabCtrl应该是这样:
参数组1 参数组2 参数组3 ... 参数组9 参数组10 参数组11 ...可实际运行结果是这样:
参数组12 参数组11 参数组10 参数组1 参数组2 ... 参数组9跟踪程序,发现在插入“参数组10”时及以后的参数组时,GetItemCount函数返回都是0。为什么会这样?CTabCtrl用的是默认风格。
m_pTabCtrl = (CTabCtrl*)m_wndDlgBar.GetDlgItem(IDC_PARAMTAB);
m_pTabCtrl->InsertItem(0, "参数组1");
////////////////////////////////////////////////////////////在OnParamGroupNew()函数中////////////////////////////////////////////////////////////
int nItemCount = m_pTabCtrl->GetItemCount(); // 在添加参数组10时就开始错!char szItem[8];
sprintf(szItem, "参数组%d", nItemCount+1);m_pTabCtrl->InsertItem(nItemCount, szItem);
m_pTabCtrl->SetCurSel(nItemCount);
TRACE("ItemCount: %d\n", nItemCount);////////////////////////////////////////////////////////////代码运行后,TabCtrl应该是这样:
参数组1 参数组2 参数组3 ... 参数组9 参数组10 参数组11 ...可实际运行结果是这样:
参数组12 参数组11 参数组10 参数组1 参数组2 ... 参数组9跟踪程序,发现在插入“参数组10”时及以后的参数组时,GetItemCount函数返回都是0。为什么会这样?CTabCtrl用的是默认风格。
自己定义一个int成员变量来记录Item的个数.