Rechercher : dans
Par :

Visual C++ : DialogBox et Bitmap

Dernière réponse le 9 oct 2006 à 15:06:21 Virginie, le 20 aoû 2003 à 18:04:32 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Visual C++ : DialogBox et Bitmap » dans :
Télécharger Visual C++ Express Voir Visual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Télécharger le contenu d'une page WEB distante VoirIntroduction Installation sous Linux (Ubuntu / Debian) Installation sous Windows Dev C++ Microsoft Visual C++ Petite exploration des fonctions de libcurl Un exemple: télécharger la page d'accueil de CCM Notre fichier source Compilation...

1

sandrine, le 21 aoû 2003 à 10:58:55

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

Répondre à sandrine

2

Lord Woden, le 21 aoû 2003 à 15:41:53

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)

Répondre à Lord Woden

3

virginie, le 22 aoû 2003 à 07:56:26

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

Répondre à virginie

4

Lord Woden, le 22 aoû 2003 à 10:04:21

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)

Répondre à Lord Woden

5

virginie, le 28 aoû 2003 à 09:49:55

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

Répondre à virginie

6

Lord Woden, le 28 aoû 2003 à 11:53:12

Salut,

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

@+ Lord Woden ;o)

Répondre à Lord Woden

7

virginie, le 28 aoû 2003 à 21:47:24

Oups, oubli ...
Evidemment ... ce sera tout de suite plus facile : v_nyns@hotmail.com

Merci d'avance,
Virginie

Répondre à virginie

14

nerser, le 21 mar 2005 à 12:49:38

Salut Lord Woden c moi toujours nerser dsl une autre foie pour ce derangement . je veut dans mon TP colorer une liste box en visual c++ mais j'ai pas pu.
si tu as une ider ou un astuce SVP filer le moi je suis tres besoin de ce astuce.
BY
prend soin de toi et dsl une deuxieme foie pour le derangement
@++
mon email c derder_athmane@hotmail.com

Répondre à nerser

11

nerser, le 14 mar 2005 à 20:25:35

Salut LORD WODEN j'ai un big probleme d'ficher un bouton contient une umage en visual c++ si tu peut m'ader a realiser cette chose je seraite tres contente .
dsl si je tes deranger avec mon mesage mes je te jure c important pour reliser mon tp.
mon email c
lopez_2001@hotmail.com
stp ne me laisse pas tomber.
de la part de lopez.
bonne chance

Répondre à nerser

12

Lord Woden, le 15 mar 2005 à 13:48:06

Salut Nerser,

je n'ai pas d'exemple perso dans mes données, mais tu devrais trouver pas mal d'exemples de codes en ligne. Pour ta recherche passe par les mots clés suivants : bitmapped, command, button, bs_ownerdraw, dialogbox.

Par défaut la page suivante te fournira un bon point de départ :
http://www.codeguru.com/Cpp/controls/buttonctrl/bitmapbutton­s/article.php/c5177/

Bon courage, @+

Lord Wodden

Répondre à Lord Woden

16

 didi, le 9 oct 2006 à 15:06:21

J'ai un problème avec la création un fichier dans visual C++ "comment je peux programmer un button dans un application MFC que ce button peux ouvrir un nouveau fichier ou enrigestrer des information dans un fichier qui déjà exicte" merci de me répondre

Répondre à didi

13

nerser, le 16 mar 2005 à 15:04:01

Salut Lord Woden je te remercie infinement pour ton aide de toute facon si tu as besoin de quelque chose n'esiter pas a me demander
je suis un etudeant en 3eme anner informatique en algerie .
merci Lord Woden de la part de nerser.
@+++
et prend soin de toi

Répondre à nerser

8

albin, le 10 nov 2003 à 18:24:10

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

Répondre à albin

9

elanstone, le 28 mai 2004 à 17:29:10

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!

Répondre à elanstone

10

salem4, le 3 mar 2005 à 08:16:48

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

Répondre à salem4

15

nerser, le 2 avr 2005 à 19:29:07

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

Répondre à nerser
Collection CommentÇaMarche.net