voila ma m�thode :

j'ai dans une fen�tre une d�claration d'onglet (des dialog-PropertyPage child sans bord, etc)

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
CTab_1 tab_onglet1;
CTab_2 tab_onglet2;
j'ai �galement la d�claration du PropertySheet qui les englobe :

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

mais passons

un PictureControle siege sur le dialog pour aider au positionnement visuel du Property : IDC_PLACEHOLDER

Arrive le moment d'instanciation du propertysheet

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);
Cependant le Create g�n�re syst�matiquement une exception (violation d'acc�s)...


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