2009-06-29 8 views
0

Après avoir modifié le texte dans l'en-tête d'un onglet, comment lui demander de recalculer la disposition des enfants (par exemple, si les nouveaux onglets occupent deux lignes)?Mettre à jour la page de propriétés ou la disposition de contrôle des onglets

Je change le texte de l'onglet comme celui-ci, à partir d'une page de propriétés:

TC_ITEM ti; 
ti.mask = TCIF_TEXT; 
ti.pszText = _T("whatever...."); 
CTabCtrl *pTabs = ((CPropertySheetEx *)GetParent())->GetTabControl(); 
pTabs->SetItem(m_nIdx, &ti); 

Répondre

1

J'ai regardé dans le code source MFC (de dlgprop.cpp, en VC++ 6.0) et plus précisément le:

BOOL CPropertySheet::OnInitDialog() 


Il semble que les calculs dont vous avez besoin sont faits là.

Essayez simplement d'appeler le OnInitDialog(). Il ne fait que redimensionner la fenêtre de feuille de propriétés.
Bien sûr, vous pouvez vérifier le code source pour plus d'informations .

+0

Cela aurait fonctionné, mais j'ai choisi simplement EnableStackedTabs (FALSE) plutôt que d'introduire cette complexité dans mon programme. – Nick

+0

Oh, je pensais que vous vouliez des lignes empilées, mais vous avez eu un problème avec leur apparence :) –

+0

Bien sûr, vous pourriez avoir posté votre solution comme une réponse. Quoi qu'il en soit, applaudissements. –

Questions connexes