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)
(Mode 1 et 0 ca doit ouvrir l’onglet 1 et dans les autres cas ca doit ouvrir l’onglet2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if(theApp.CurCamera->Mode==1||theApp.CurCamera->Mode==0) this->m_AdvOnglet1.SetActiveWindow(); else this->m_AdvOnglet2.SetActiveWindow();
Au final j’ai :
Pour afficher le 1er onglet ca ne pose évidement aucun problème mais pour activer le 2e ca bug (gros message de violation…)
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 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; }
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é!
Partager