Fonctionnement d'un notebook dans un panel ?
Bonjour à tous,
J'ai une question car je ne comprends pas la marche a suivre pour inclure un notebook (systeme d'onglets) dans un projet.
Voici ce dont je dispose :
- J'ai une Frame (en fait une wxMDIChildFrame) comme fenêtre fille de mon application. Cette fenetre s'appelle CGame.
- Dans cette frame, puisque c'est un jeu, je désire inclure des images. Je remplis donc ma frame d'un panel avec une méthode OnPaint dans ce panel. Celui-ci s'appelle CGamePanel.
- Dans ce panel de jeu, j'ai une grille à gauche (pour jouer au scrabble), et toutes les infos relatives au jeu, je voudrais les mettre dans plusieurs panneaux accessibles via des onglets, donc des panels dans un Notebook.
- J'ai donc deja essayé de faire un notebook, et de lui attacher comme parent mon CGamePanel. Le panel créé pour le notebook s'appelle CTopingPanel. Voici le résumé:
- CGame : wxMDIChildFrame
---------> CGamePanel : wxPanel
--------------> wxNotebook
---------------------> Add( CTopingPanel : wXPanel)
---------------------> Add( .... ajout du panneau 2, 3, etc.).
Pour créer mon notebook je fais :
Code:
1 2
|
wxNotebook* myNotebook = new wxNotebook( this, wxID_ANY ). |
Pour attacher mon nouveau panneau au notebook je fais comme ceci :
Code:
1 2 3
|
CTopingPanel* myTopingPanel = new CTopingPanel( myNotebook, wxID_ANY );
myNotebook->Add( myTopingPanel, "Toping" ). |
Voilà, je précise que je fais tout ca dans le constructeur de mon CGamePanel.
Ce qu'il se passe, c'est que le notebook avec le panneau s'affiche bien, mais la charge du processeur monte a 100%, et impossible de faire quoi que ce soit, l'interface est bloquée. C'est un bug qui s'apparente à un problème de repaint...
Donc a-t-on le droit de créer un notebook dans un panel ?
Je me suis dis que non, donc j'essaie de le créer dans la Frame parent (c'est a dire CGame), au cas ou.... en faisant :
Code:
1 2
|
wxNotebook* myNotebook = new wxNotebook( GetParen(), wxID_ANY ). |
Mais en fait ca marche encore moins puisque le processeur se bloque a 100% encore et ca n'affiche plus qu'une autre partie de la fenetre, c'est la cata !
Avez vous une idée svp ?
Merci.