Visual C++ : DialogBox et Bitmap

Résolu/Fermé
Virginie - 20 août 2003 à 18:04
 didi - 9 oct. 2006 à 15:06
J'ai réalisé un programme en VisualC++ 6.0 comportant : une CDialog qui affiche des images bitmap (avec la classe CBitmap, CDC et CClientDC).
Mes problèmes sont les suivants :
1) lorsque j'affiche une image plus petite que la précédante, je m'aperçois que la précédante reste en dessous. Comment faire pour que l'image précédante disparaisse ? Quelles fonctions utiliser ?
2) lorsque je navigue entre mon application et une autre (comme VisualC++ par ex.) : l'image disparaît lorsque je reviens à mon application. Que dois-je faire, Quelles fonctions utiliser ?

Merci d'avance pour votre aide,

Virginie
A voir également:

6 réponses

Salut! J'ai remarqué que tu sais associer des images bitmaps a une Cdialog, saurais-tu m'expliquer?

Merci,

Excuses-moi si cça ne répond pas à ton problème.

Sandrine
0
Lord Woden Messages postés 89 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 19 janvier 2006 21
21 août 2003 à 15:41
Salut Virginie,

en fait ton problème vient du fait que tu affiches tes images en faisant un Paint sur une zone de ta boîte de dialog.

Il faut en fait que tu ajoutes un Picture Control dans ta boite de dialogue et que tu associe cette image (SetImage je crois) a ce control une fois que tu as fait ton loadimage(). A ce moment la c'est le control picture qui s'assure de rafraichir les affichages de l'image que tu lui as associé.

@+ Lord Woden ;o)
0
Salut,
Merci pour ton aide, mais avec ce système, comment puis-je dynamiquement depuis mon application changer l'image à afficher.
Je m'explique : en fonction d'un critère introduit par l'utilisateur sur la boite de dialogue, l'image a afficher est différente (nom du fichier image stocké dans une database).
Si tu connais un moyen, quelles ont les commandes a utiliser dans le fichier xxDlg.cpp (comment faire référence au Picture Control introduit via le tab 'ResurceView')

Merci pour ton aide,
Virginie
0
Lord Woden Messages postés 89 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 19 janvier 2006 21 > virginie
22 août 2003 à 10:04
Salut Virginie,

Pour te montrer le comment, voici un extrait de code basé sur la technique que je t'ai donné. Dans ce cas, cette méthode ouvre une fenêtre standard d'ouverture de fichier et affiche le bitmap demandé dans le cadre défini par mon control picture. Si tu as besoin j'ai un exemple complet qui fonctionne que je peux te fournir.

void CMyMFCBmpViewerDlg::OnFileBitmapOpen()
{
// szFilters is a text string that includes two file name filters:
// "*.bmp" for "Bitmap Files" and "*.*' for "All Files."
char szFilters[]=
"MyType Files (*.bmp)|*.bmp|All Files (*.*)|*.*||";

// Create an Open dialog;
// the default file name extension is ".bmp".
CFileDialog fileDlg (TRUE, "", "*.bmp",
OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);

// Display the file dialog. When user clicks OK,
// Display the bitmap in picture control of my dialog box
if( fileDlg.DoModal ()==IDOK )
{
CString pathName = fileDlg.GetPathName();

// Implement opening and reading file in here.
// Get handle on picture control window
CWnd * hWndViewer = this->GetDlgItem(IDC_VIEWER);

// Load the bitmap
HBITMAP hBitmap = (HBITMAP) LoadImage( 0,
pathName.GetString(),
IMAGE_BITMAP,
0,0,
LR_LOADFROMFILE |
LR_LOADMAP3DCOLORS |
LR_SHARED );

// Associate picture to the control
hWndViewer->SendMessage( STM_SETIMAGE,
(WPARAM) IMAGE_BITMAP,
(LPARAM) hBitmap );

//Change the window's title to the opened file's title.
CString fileName = fileDlg.GetFileTitle ();

SetWindowText(fileName);
}
return;
}

@+ Lord Woden ;o)
0
virginie > Lord Woden Messages postés 89 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 19 janvier 2006
28 août 2003 à 09:49
Hello,

Sorry pour le délai ....

Pourrais tu en effet me faire parvenir tout le project complet (si je n'abuse pas trop) comme tu me le propose dans ta réponse précédant. Je n'arrive décidemment pas à ce que cela fonctionne.
Peut être pourrais tu me le faire parvenir sur mon e-mail.

Un tout grand merci pour ton aide,

Virginie
0
Lord Woden Messages postés 89 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 19 janvier 2006 21 > virginie
28 août 2003 à 11:53
Salut,

je veux bien te l'envoyer sur ton mail, mais il me faudrait au moins l'adresse alors ... ;o)

@+ Lord Woden ;o)
0
virginie > Lord Woden Messages postés 89 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 19 janvier 2006
28 août 2003 à 21:47
Oups, oubli ...
Evidemment ... ce sera tout de suite plus facile : v_nyns@hotmail.com

Merci d'avance,
Virginie
0
Salut

J'ai le même problème que toi et comme tu as la solution maintenant.
Pourrais-tu m'envoyer le projet.
Ce serai extremement gentils

Merci

mon adresse email : albin.kury@bluewin.ch
0
salut tt le monde,

j'ai un problème d'affichage, j'ai fais un explorateur de fichier en visual c++.net mais le problème et que je n'arrive pas a afficher un bitmap dans mon control picturbox (je début et vc.6 et vc.net c assez différent je trouve), si quelq'un a une solution et pourrais me le faire parvenir ca serais super! source...

merci!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
salem4 Messages postés 1 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 3 mars 2005
3 mars 2005 à 08:16
Salut Lord Woden


Pourrais-tu m'envoyer le projet j'ai aussi le même problème que toi.
Ce serai extremement gentils

Voici mon adresse email : d.salem4@voila.fr

Merci d'avance

salem4
0
nerser Messages postés 39 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 27 juin 2007 2
2 avril 2005 à 19:29
salut virgine j'ai un probleme en visual c++ si tu peut m'aider .
je veut colorer un element dans une listbox comment je fait.
je les besoin avant le 5 avril pour reliser mon tp.
bye
0

Discussions similaires