GetCurFocus of CTabCtrl not getting fired ? - Programmer

This is a discussion on GetCurFocus of CTabCtrl not getting fired ? - Programmer ; Hello , I am facing problem when I try to get the selected tab of TabCtrl Here is what I did In a view there are 2 list controls and a list box all these controls are sublasses and one ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: GetCurFocus of CTabCtrl not getting fired ?

  1. GetCurFocus of CTabCtrl not getting fired ?

    Hello ,

    I am facing problem when I try to get the selected tab of TabCtrl
    Here is what I did
    In a view
    there are 2 list controls and a list box
    all these controls are sublasses and one of theList Ctrl is the child
    of the TabCtrl.
    I have 2 problems


    Since these 2 listcontrols can talk each other ,but when I try to get
    the selected tab index I get error of -1.



    ClistCtrl2 is the child of CTabCtrl (child of CFormView);
    CListCtrl1 is the child of Formview

    Here is the code ! Can somebody help me
    in CFormView :: OnInitialUpdate()
    {
    CTab1 *tab1 = new CTab1(); //CTab1 and CTab2 are CDialog derived
    classed
    CTab2 *tab2 = new CTab2();

    //create
    tab1->Create(IDD_DIALOG1, &m_CtrlTab);
    tab2->Create(IDD_DIALOG2, &m_CtrlTab);

    //Assign the CDilaog array of pointers
    m_tabPages[0]= tab1;
    m_tabPages[1]= tab2;

    tab1->ShowWindow(SW_HIDE);
    tab2->ShowWindow(SW_SHOW);

    CRect rectArea;
    m_CtrlTab.GetWindowRect(rectArea);

    tab1->SetWindowPos ( NULL, 9, 35, rectArea.Width() - 18,
    rectArea.Height() - 44, SWP_NOZORDER | SWP_NOACTIVATE );
    tab2->SetWindowPos ( NULL, 9, 35, rectArea.Width() - 18,
    rectArea.Height() - 44, SWP_NOZORDER | SWP_NOACTIVATE );

    }


    void CFormView1::OnTcnSelchangeTabCtrl(NMHDR *pNMHDR, LRESULT *pResult)
    {
    // TODO: Add your control notification handler code here

    if(m_tabCurrent != m_CtrlTab.GetCurSel())
    {
    m_tabPages[m_tabCurrent]->ShowWindow(SW_HIDE);
    m_tabCurrent=m_CtrlTab.GetCurFocus();
    m_tabPages[m_tabCurrent]->ShowWindow(SW_SHOW);
    m_tabPages[m_tabCurrent]->SetFocus();
    *pResult = 0;
    }


  2. Re: GetCurFocus of CTabCtrl not getting fired ?

    got it i forgot to initialize the current index and no o fpages.
    thanks


  3. Re: GetCurFocus of CTabCtrl not getting fired ?

    Try CTabCtrl::GetCurSel() instead of CTabCtrl::GetCurFocus()

    AliR.

    wrote in message
    news:1148331699.767931.43900@j55g2000cwa.googlegro ups.com...
    > Hello ,
    >
    > I am facing problem when I try to get the selected tab of TabCtrl
    > Here is what I did
    > In a view
    > there are 2 list controls and a list box
    > all these controls are sublasses and one of theList Ctrl is the child
    > of the TabCtrl.
    > I have 2 problems
    >
    >
    > Since these 2 listcontrols can talk each other ,but when I try to get
    > the selected tab index I get error of -1.
    >
    >
    >
    > ClistCtrl2 is the child of CTabCtrl (child of CFormView);
    > CListCtrl1 is the child of Formview
    >
    > Here is the code ! Can somebody help me
    > in CFormView :: OnInitialUpdate()
    > {
    > CTab1 *tab1 = new CTab1(); //CTab1 and CTab2 are CDialog derived
    > classed
    > CTab2 *tab2 = new CTab2();
    >
    > //create
    > tab1->Create(IDD_DIALOG1, &m_CtrlTab);
    > tab2->Create(IDD_DIALOG2, &m_CtrlTab);
    >
    > //Assign the CDilaog array of pointers
    > m_tabPages[0]= tab1;
    > m_tabPages[1]= tab2;
    >
    > tab1->ShowWindow(SW_HIDE);
    > tab2->ShowWindow(SW_SHOW);
    >
    > CRect rectArea;
    > m_CtrlTab.GetWindowRect(rectArea);
    >
    > tab1->SetWindowPos ( NULL, 9, 35, rectArea.Width() - 18,
    > rectArea.Height() - 44, SWP_NOZORDER | SWP_NOACTIVATE );
    > tab2->SetWindowPos ( NULL, 9, 35, rectArea.Width() - 18,
    > rectArea.Height() - 44, SWP_NOZORDER | SWP_NOACTIVATE );
    >
    > }
    >
    >
    > void CFormView1::OnTcnSelchangeTabCtrl(NMHDR *pNMHDR, LRESULT *pResult)
    > {
    > // TODO: Add your control notification handler code here
    >
    > if(m_tabCurrent != m_CtrlTab.GetCurSel())
    > {
    > m_tabPages[m_tabCurrent]->ShowWindow(SW_HIDE);
    > m_tabCurrent=m_CtrlTab.GetCurFocus();
    > m_tabPages[m_tabCurrent]->ShowWindow(SW_SHOW);
    > m_tabPages[m_tabCurrent]->SetFocus();
    > *pResult = 0;
    > }
    >




+ Reply to Thread