Help a propos de la classe CPaintDC !!!!

Help a propos de la classe CPaintDC !!!! - C++ - Programmation

Marsh Posté le 06-02-2004 à 17:50:55    

Dans mon application MFC, je souhaite afficher des images BMP avec un rafraichissement.
Pour ce faire, j'utilise la fct CPaintDC.
Mon soucis, c que je n'arive qu'a l'utiliser qu'une seule fois !  
je m'explique :
Lors du lancement du programme, je souhaite afficher un cadre à l'intérieur duquel il
recevra l'image BMP.
J'ai rempli le code à l'intérieur de OnPaint(), qui est la 1ere fct appelé après la création de l'app.
puis, en cliquant sur un bouton ("image" par ex.), je souhaite afficher l'image BMP.
Le pb, c'est qu'en déclarant un autre objet de CPaintDC, comme la précédente à "toujours la main" sur l'interface graphique,
celle-ci ne s'affiche pas !
Alors, je suis obligé de créé un cadre en meme tps que l'affichage de l'image :(
J'ai pensé mettre l'objet comme donné membre :D , mais lors de l'affectation ("this" ), ca chie ! :(
Y a p-e une solution qui permet de killer l'instance après son utilisation non ?
une solution ?

Reply

Marsh Posté le 06-02-2004 à 17:50:55   

Reply

Marsh Posté le 09-02-2004 à 14:53:32    

personne ?
 
sinon, voici le code que je met dans OnPaint() :

Code :
  1. void CAfficheImageDlg::OnPaint() //Cadre noir
  2. {
  3. CPaintDC dh(this);
  4. Rectangle(dh,69,59,361,280);
  5. DeleteDC(dh);
  6. }


 
et dans OnGetImage() (un bouton que g placer moi-meme, qui doit afficher l'image) :

Code :
  1. void CAfficheImageDlg::OnGetImage()
  2. {
  3. CPaintDC dc(this);
  4. Rectangle(dc,69,59,361,280);
  5. HBITMAP bit;
  6. BITMAP bitmap;
  7. bit= (HBITMAP)
  8.  LoadImage(NULL, image, IMAGE_BITMAP,0,0, LR_DEFAULTSIZE|LR_LOADFROMFILE);
  9. HDC bit_dc = CreateCompatibleDC(dc);
  10. GetObject(bit, sizeof(BITMAP), &bitmap);
  11. int LS = bitmap.bmWidth;
  12. int HS = bitmap.bmHeight;
  13. SelectObject(bit_dc, bit);
  14. StretchBlt(dc,70,60,290,219,bit_dc,0,0,LS-x,HS-


 
si j'enleve le code placer ds OnPaint, le bouton marche bien, sinon, ca chie, il fait que le cadre...

Reply

Marsh Posté le 10-02-2004 à 12:45:30    

  [:atigrou_tt]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed