在OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) 
{
  CTabCtrl* pTabCtrl;
pTabCtrl=(CTabCtrl*)GetDlgItem(IDC_TAB1);
int iSel=pTabCtrl->GetCurSel();
}
中可以得到当前选择的列。我想在别的地方却得不到,因为控制失去了焦点,如何不在OnSelchangeTab1()得到凸出的该项位置?解决马上结贴。

解决方案 »

  1.   

    方法1:
      定义成员变量int m_nSel;
    OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
      CTabCtrl* pTabCtrl;
    pTabCtrl=(CTabCtrl*)GetDlgItem(IDC_TAB1);
    m_nSelel=pTabCtrl->GetCurSel();
    }
    在其他地方想用的时候,直接用m_nSel就可以了!
      

  2.   

    上面的不理想。我想过的了,我想更简单的,
    不知道pTabCtrl->GetItemState()这个函数可不可以用?
    如果没办法,只能这样做了。谢谢!
      

  3.   

    我想在别的地方却得不到,因为控制失去了焦点????
    //////////////////////////////////////////////楼主,我的在其它地方可以得到呀,如onok中
      

  4.   

    可以得到!
    可能你在不同的对话框中访问它,所以没有得到。
    首先,确定TabCtrl所在的父窗口,根据父窗口找到CTabCtrl的ID或成员变量,然后再访问。
      

  5.   

    请教一下,我用了CTabCtrl,它所包含的几个对话框,位置固定,又没有简单的方法,让这几个对话框随主窗口一起移动。
      

  6.   

    GetItemState也不失为一个好办法哦
    不过要遍历所有Tab