m_cTab.InsertItem(0, "tab1");
m_cTab.InsertItem(1, "tab2");
m_cTab.InsertItem(2, "tab3");
m_cTab.InsertItem(3, "tab4");
void CMyDlg::OnChangingTab(NMHDR* pNMHDR, LRESULT* pResult)
{
int m_nTabIndex = m_cTab.GetCurSel(); switch(m_nTabIndex) {
}
}怎么取得的nTabIndex跟点击的顺序有关?而不是设置的 0,1,2,3?
先点哪个就是0..
m_cTab.InsertItem(1, "tab2");
m_cTab.InsertItem(2, "tab3");
m_cTab.InsertItem(3, "tab4");
void CMyDlg::OnChangingTab(NMHDR* pNMHDR, LRESULT* pResult)
{
int m_nTabIndex = m_cTab.GetCurSel(); switch(m_nTabIndex) {
}
}怎么取得的nTabIndex跟点击的顺序有关?而不是设置的 0,1,2,3?
先点哪个就是0..
Sorry
如果要先点为0;再依次叠加
可以自己来写吧?!
加个public int Cindex;
在OnChangingTab()时Cindex自加
如果不能让人选择
第一次就要出现TabIndex为0的
就在后加个SetCurSel(Cindex);
我不是设置了nItem为 0,1,2,3么,我需要 GetCurSel 就是 0,1,2,3. GetCurSel --- GetCurrentSelect 吧?
不会吧~~
我跑起来就是对的啊?!
void CAdd::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0; int m_nTabIndex = m_cTab.GetCurSel();
CString str;
str.Format(_T("U sel:%d"),m_nTabIndex);
AfxMessageBox(str);
/*switch(m_nTabIndex)
{ } */}
你用这个OnTcnSelchangeTab()试试看
在视图窗口内加入CTabCtrl控件,设变量名为m_tab,新建两个对话框属性设为Child,None,用ClassWizard生成新的类,基类为Cdialog,分别为Cpage1,Cpage2,ID号分别为IDD_DIALOG1,IDD_DIALOG2。在CtestView内加入两个变量,Cpage1 page1;Cpage2 page2。
在CtestView的OnInitialUpdae()内初始化
void CTestView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit(); if(!page1.m_hWnd||!page2.m_hWnd) //第一次初始化m_tab 控件和page页的建立
{
//初始化m_tab控件
m_tab.InsertItem(0,"page0 北京");
m_tab.InsertItem(1," page1上海");
m_tab.InsertItem(2," page2江西"); //建立属性页各页
page1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
page2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1)); //设置页面的位置在m_tab控件范围内
CRect rs;
m_tab.GetClientRect(rs);
rs.top+=20;
rs.bottom-=4;
rs.left+=4;
rs.right-=4; page1.MoveWindow(rs);
page2.MoveWindow(rs); page1.ShowWindow(TRUE);
m_tab.SetCurSel(1);
}
}
m_tab控件属性页选择时显示各页
void CTestView::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int CurSel;
CurSel=m_tab.GetCurSel();
switch(CurSel)
{
case 0:
page1.ShowWindow(FALSE);
page2.ShowWindow(FALSE);
break;
case 1:
page1.ShowWindow(TRUE);
page2.ShowWindow(FALSE);
break;
case 2:
page1.ShowWindow(FALSE);
page2.ShowWindow(TRUE);
break;
default: ;
}
*pResult = 0;
}
用 TVN_SELCHANGING 事件