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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 wxNotebook* myNotebook = new wxNotebook( this, wxID_ANY ).
Pour attacher mon nouveau panneau au notebook je fais comme ceci :
Voilà, je précise que je fais tout ca dans le constructeur de mon CGamePanel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CTopingPanel* myTopingPanel = new CTopingPanel( myNotebook, wxID_ANY ); myNotebook->Add( myTopingPanel, "Toping" ).
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 :
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 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 wxNotebook* myNotebook = new wxNotebook( GetParen(), wxID_ANY ).
Avez vous une idée svp ?
Merci.
Partager