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..

解决方案 »

  1.   

    GetCurSel-->get cur Sel获得鼠标的选择,以鼠标为主啊?!~~~~
      

  2.   

    Big Mistake理解错误!
    Sorry
      

  3.   

    鼠标得到的是你选择的当前设置好的TabIndex
    如果要先点为0;再依次叠加
    可以自己来写吧?!
    加个public int Cindex;
    在OnChangingTab()时Cindex自加
    如果不能让人选择
    第一次就要出现TabIndex为0的
    就在后加个SetCurSel(Cindex);
      

  4.   

    程序是先点为0,我不希望是这样.
    我不是设置了nItem为 0,1,2,3么,我需要 GetCurSel 就是 0,1,2,3.   GetCurSel --- GetCurrentSelect 吧?
      

  5.   

    !!!
    不会吧~~
    我跑起来就是对的啊?!
    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) 
    { } */}
      

  6.   

    OnChangingTab()??
    你用这个OnTcnSelchangeTab()试试看
      

  7.   

    看看,我这样可以实现你说的
    在视图窗口内加入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; 

      

  8.   


    用  TVN_SELCHANGING 事件