Avatar of Arrummzen
 asked on

MFC- Tab Control - Problem implementing dynamic tabs.

I want to be able to add tabs dyanmicly to the tab control during program operation, I will not know witch tabs or in what order they will need to be added.
I tried solving this problem by assigning an index to each tab so I could add and remove them by useing there index however If I have tabs 1,2 and 3 on a form and 1 is removed then 2 becomes 1 and 3 becomes 2. This messess things up.
To solve the probelm I want to identify the tabs by there names. So I added a "add tab by name" and "remove tab by name" meathod.

int CappDlg::DeleateTabByName (char name[])
     TCITEM CurTab;
     CurTab.mask = TCIF_TEXT;

     int num = SubMen.GetItemCount();

     int cout;
     for ( cout = 0 ; cout <= num ; cout++)
          BOOL fail = SubMen.GetItem ( cout , &CurTab );
          if ( fail = FALSE )
               AfxMessageBox ("ERROR");
          if ( CurTab.pszText == name)
               SubMen.DeleteItem ( cout );
               return 1; // 1 == succses

     return 0; // 0 == failure
     return -1; // -1 means not implemented    


int CappDlg::addTabByName (char name[])
     TC_ITEM TabCtrlItem;
     TabCtrlItem.mask = TCIF_TEXT;
     TabCtrlItem.pszText = name;
     SubMen.InsertItem ( 1 , &TabCtrlItem );

     return 1; // 1 == succsess

The add tab by name function works correcly but the remove tab by name tab does not. Why does the remove tab by name function fail to work?
I tried debuging and I find that CurTab's sting value is bad, it says that the pointer is invalied. I don't see how this could be however becuse the GetItem meathod returns true.
I have no idea why thid does not work but it might have something to do with the invalid string in CurTab.
System Programming

Avatar of undefined
Last Comment

8/22/2022 - Mon

oopps, I didnt meen to post to, Is there anyway I can get this one deleated? If not just dont relpy to this one.

View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
I started with Experts Exchange in 2004 and it's been a mainstay of my professional computing life since. It helped me launch a career as a programmer / Oracle data analyst
William Peck