Luvesco |
Bonjour, je reprend une application ou on pouvait exporter une bitmap
à partir d'un wxPanel.
Voici l'ancien code :
Code :
- void
- CControleur::OnExportGraphe(wxCommandEvent& WXUNUSED(event)) {
- if (mChaineEstEnCours) {
- // On recupere l'id de l'onglet courant :
- int idOngletCourant = getInterface()->mNotebook1->GetSelection();
- // On se place sur l'onglet graphe :
- getInterface()->mNotebook1->SetSelection(1);
- // On sauvegarde l'image en mémoire
- wxClientDC dc(mInterface->mGraphe);//mGraphe = panel en question
- int dcWidth;
- int dcHeight;
- dc.GetSize(&dcWidth,&dcHeight);
- wxBitmap graphe(dcWidth, dcHeight);
- wxMemoryDC tempDc;
- tempDc.SelectObject(graphe);
- tempDc.Blit(0,0,dcWidth,dcHeight,&dc,0,0);
- // On se remet à l'onglet courant :
- getInterface()->mNotebook1->SetSelection(idOngletCourant);
- // On affiche la boite de dialogue
-
- wxFileDialog dialog(mInterface,
- _T("Choisissez l'emplacement de l'image à sauvegarder :" ),
- _T("" ),
- _T("GrapheDeTransition.bmp" ),
- _T("Image Bitmap (*.bmp)|*.bmp" ),
- wxSAVE|wxOVERWRITE_PROMPT);
- if (dialog.ShowModal() == wxID_OK) {
- // Si c'est OK -> on l'enregistre sur le disque
- graphe.SaveFile(dialog.GetPath(), wxBITMAP_TYPE_BMP);
- }
- }
- else
- wxLogMessage("Aucune chaîne de Markov n'est actuellement ouverte !" );
- }
- ...
|
Le problème, c'est que maintenant, le panel est à l'intérieur d'une wxScrolledWindow, et quand je lance l'exportation, l'image que j'obtient est composée en grande partie de la fenêtre au dessus du panel, alors qu'évidemment, je veux que le panel.
des idées ??
|