Bonjour,
Pour un projet, j'essaie de modifier le libellé d'un tab control.
Pour cela, j'ai rajouté une fonction dans le composant de Farscape
http://farscape.developpez.com/Samples/CxTabCtrl.zip
La fonction se base sur http://msdn.microsoft.com/en-us/library/dwzz1y47.aspx
la voici
J'appel la fonction dans un timer
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 void CXTabCtrl::SetTabText(int iIndex, LPCTSTR lpszCaption) { //http://msdn.microsoft.com/en-us/library/dwzz1y47.aspx // Get the current tab item text. TCITEM tcItem; TCHAR buffer[256] = {0}; tcItem.pszText = buffer; tcItem.cchTextMax = 256; tcItem.mask = TCIF_TEXT|TCIF_PARAM; this->GetItem(iIndex, &tcItem); // Set the new text for the item. tcItem.pszText = (LPTSTR) lpszCaption; // Set the item in the tab control. this->SetItem(iIndex, &tcItem); }
le problème , c'est qu'après appel de la fonction , le texte est bien changé mais le dialog incrusté dans le tab disparait.
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 void CTabctrlDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default CTplDlgColor<CDialog>::OnTimer(nIDEvent); CTime curTime = CTime::GetCurrentTime(); CString m_time; m_time.Format("%02d:%02d:%02d", curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond()); m_tabctrl.SetTabText(0,(LPCTSTR)m_time); }
Voila mon projet sous forme zippé
http://cxtabctrl.site.voila.fr/Cxtabctrl.zip
Merci d'avance pour vos réponses
PS : j'ai aussi tenté avecçà ne marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part tcItem.mask = TCIF_TEXT;
Partager