[MFC]CPropertyPage Activer la bonne
Bonjour,
Voila j'utilise une CPropertySheet dans la quelle j'affiche plusieurs CPropertyPage Tout marche
Mais celle-ci est dans une fenêtre que l'utilisateur peut ouvrir et fermer a volonté
A l'ouverture de la page je souhaiterais que l'onglet sélectionné ne soit pas forcément le 1er ajouté à la CPropertySheet
J’ai donc mis le code suivant dans mon OnInitDialog (après toutes les créations)
Code:
1 2 3 4
| if(theApp.CurCamera->Mode==1||theApp.CurCamera->Mode==0)
this->m_AdvOnglet1.SetActiveWindow();
else
this->m_AdvOnglet2.SetActiveWindow(); |
(Mode 1 et 0 ca doit ouvrir l’onglet 1 et dans les autres cas ca doit ouvrir l’onglet2)
Au final j’ai :
Code:
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
| BOOL AdvancedDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//Initialisation des onglets
m_AdvOngletControl.AddPage(&(this->m_AdvOnglet1));
m_AdvOngletControl.AddPage(&(this->m_AdvOnglet2));
m_AdvOnglet1.Init(this);
m_AdvOnglet2.Init(this);
m_AdvOngletControl.Create(this, WS_CHILD | WS_VISIBLE, 0);
m_AdvOngletControl.ModifyStyleEx(0, WS_EX_CONTROLPARENT);
m_AdvOngletControl.ModifyStyle(0, WS_TABSTOP );
CRect rcSheet;
GetDlgItem( IDC_AdvancedOngletControl)->GetWindowRect( &rcSheet );
ScreenToClient( &rcSheet );
m_AdvOngletControl.SetWindowPos( NULL, rcSheet.left-8, rcSheet.top-8, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE );
ShowWindow(SW_SHOW);
//
this->FlagSet=theApp.CurCamera->Mode;
this->UpdateAll();
if(theApp.CurCamera->Mode==1||theApp.CurCamera->Mode==0)
this->m_AdvOnglet1.SetActiveWindow();
else
this->m_AdvOnglet2.SetActiveWindow();
return TRUE;
} |
Pour afficher le 1er onglet ca ne pose évidement aucun problème mais pour activer le 2e ca bug (gros message de violation…)
Je pense que je cherche a afficher qqch qui n’est pas encore créé !!!
Savez-vous comment il faut faire ?
Merci
Ps : désolé si la question a déjà été posée mais malgré mes recherches j'ai rien trouvé!