Bonjour,
je code en C++ sous Visual Studio 2005 et j'ai créé une classe ContainerTabCtrl de type CTabCtrl.
elle a comme attributs :
avec NB = 4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int m_DialogID[NB]; // boite de dialogue enfant CPanelTab *m_Dialog[NB]; // classe associée à la boite de dialogue
j'ai dans mon .cpp:
lorsque je l'appelle dans mon objet parent, j'écris :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 //Mon constructeur ContainerTabCtrl::ContainerTabCtrl() { int i =0; for(i = 0; i < NB; i++) { m_Dialog[i] = new CPanelTab(); m_DialogID[i] = IDD_PANEL_INFO_CODE; } } //Destructeur ContainerTabCtrl::~ContainerTabCtrl() { int j = 0; for(j = 0; j < NB; j++) {delete m_Dialog[j];} } //Et mes 2 méthodes void ContainerTabCtrl::InitDialogs() { int k = 0; for(k = 0; k < NB; k++) { m_Dialog[k]->Create(m_DialogID[k],GetParent()); } } void ContainerTabCtrl::ActivateTabDialogs(int nSel) { int nCount = 0; if (m_Dialog[nSel]->m_hWnd) {m_Dialog[nSel]->ShowWindow(SW_HIDE);} CRect l_rectClient; CRect l_rectWnd; GetClientRect(l_rectClient); AdjustRect(FALSE,l_rectClient); GetWindowRect(l_rectWnd); GetParent()->ScreenToClient(l_rectWnd); l_rectClient.OffsetRect(l_rectWnd.left,l_rectWnd.top); m_Dialog[nSel]->SetWindowPos(&wndTop, l_rectClient.left, l_rectClient.top, l_rectClient.Width(), l_rectClient.Height(), SWP_SHOWWINDOW ); m_Dialog[nSel]->ShowWindow(SW_SHOW); }
Puis:
Code : Sélectionner tout - Visualiser dans une fenêtre à part m_TabCtrl.InitDialogs();
Et enfin:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 m_TabCtrl.InsertItem(0,"Main Radio"); m_TabCtrl.InsertItem(1,"Radio 1"); m_TabCtrl.InsertItem(2,"Radio 2"); m_TabCtrl.InsertItem(3,"Radio 3"); m_TabCtrl.SetCurSel(0);
ça compile nickel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 m_TabCtrl.ActivateTabDialogs(0); m_TabCtrl.ActivateTabDialogs(1); m_TabCtrl.ActivateTabDialogs(2); m_TabCtrl.ActivateTabDialogs(3); // m_TabCtrl de type ContainerTabCtrl
Mais je me retrouve avec le meme onglet instancié 4 fois.
Donc lorsque je saisie qqchose dans les champs texte d'un des onglets, j'ai la meme chose partout.
Pourriez-vous m'aider s'il-vous-plait? Merci d'avance.
Partager