voila ma m�thode :
j'ai dans une fen�tre une d�claration d'onglet (des dialog-PropertyPage child sans bord, etc)
j'ai �galement la d�claration du PropertySheet qui les englobe :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 CTab_1 tab_onglet1; CTab_2 tab_onglet2;
CSheet est une classe d�rivant de PropertySheet, � laquelle je n'ai pas touch�, si ce n'est un rajout de "Focus" sur le onpaint
Code : S�lectionner tout - Visualiser dans une fen�tre � part CSheet* tab;
mais passons
un PictureControle siege sur le dialog pour aider au positionnement visuel du Property : IDC_PLACEHOLDER
Arrive le moment d'instanciation du propertysheet
Cependant le Create g�n�re syst�matiquement une exception (violation d'acc�s)...
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 // on récupère le pointeur sur la picture CWnd* tab_place = GetDlgItem(IDC_PLACEHOLDER); // on créé le sheet tab = new CSheet("",tab_place,0); // on lui ajoute les 2 onglets tab->AddPage(&tab_onglet1); tab->AddPage(&tab_onglet2); // et on créé l'instance if (!tab->Create(tab_place, WS_CHILD | WS_VISIBLE, 0)) { delete tab; tab = NULL; return; } // positionnement physique dépendant de la position de la picture CRect r; tab_place->GetWindowRect(r); tab->SetWindowPos(NULL, 0, 0, r.Width(), r.Height(), SWP_NOZORDER | SWP_NOACTIVATE);
j'ai fait quelque chose de mal ?
je place cette init dans un paint (avec un bool�en pour ne le faire qu'une fois). J'ai essay� aussi dans oninitdialog...
mais syst�matiquement la premi�re fois �a plante...
Alors le r�sultat : l'appli tourne sans probleme... jusqu'� ce qu'on passe la fen�tre en second plan (genre on la recouvre avec un IE)... on ne peut alors plus la r�afficher. Et lorsqu'on quitte, on a une serie d'exception
Partager