Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1351 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [VC++6] Sauvegarde d'une view en fichier bmp

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++6] Sauvegarde d'une view en fichier bmp

n°828420
Yoyo@
Posté le 21-08-2004 à 16:06:08  profilanswer
 

Salut,
 
Ma question est en fait assez simple.
J'ai une petite appli basée sur des symboles graphiques, que je dévelope en sous Visual C++ 6, et je voudrais savoir comment faire pour sauvegarder ce qui se trouve dans ma view, sous forme de fichier.
 
Je pense que le plus simple sera un fichier au format bmp.
 
Existe t il une maniere facile de le faire?
 
Merci.

mood
Publicité
Posté le 21-08-2004 à 16:06:08  profilanswer
 

n°828423
KangOl
Profil : pointeur
Posté le 21-08-2004 à 16:15:52  profilanswer
 

<printscreen> :D


---------------
Nos estans firs di nosse pitite patreye...
n°828471
Yoyo@
Posté le 21-08-2004 à 17:39:32  profilanswer
 

Mais nan,  
 
Je voudrais pouvoir le faire de maniere logicielle, cad inclure un bouton dans ma toolbar permettant de saugarder ma vue en format bmp (et avec le nom de fichier voulu)

n°839567
Alkor2001
Posté le 02-09-2004 à 11:28:44  profilanswer
 

Yoyo@ a écrit :

Mais nan,  
 
Je voudrais pouvoir le faire de maniere logicielle, cad inclure un bouton dans ma toolbar permettant de saugarder ma vue en format bmp (et avec le nom de fichier voulu)


 
Bah justement y a moyen de sauvegarder en tant que BMP ce qui est affiché à l'écran...
 
Voilà un exemple que j'ai fait, ça doit être très loin d'être propre point de vue code, mais ça fonctionne bien:
 

Code :
  1. char fichierbmp[64],fichiergif[64];
  2. char command[128];
  3. CClientDC dc(this);
  4. LPRECT lprect;
  5. RECT rect;
  6. CPoint pt;
  7. pt=dc.GetCurrentPosition();
  8. GetWindowRect(&rect);
  9. lprect=&rect;
  10. HDC hdcScreen=CreateDC("DISPLAY",NULL,NULL,NULL);
  11. HDC hdcCompatible=CreateCompatibleDC(hdcScreen);
  12. BITMAP bmp;
  13. bmp.bmPlanes=1;
  14. bmp.bmBitsPixel=8;
  15. // suppression des artéfacts éventuels
  16. // (on connaît windows!!)
  17. lprect->left+=5;
  18. if(version == 0)  //Win 9x/Me
  19. {
  20.  //MessageBox("9x/Me","" );
  21.  lprect->top += 40; //On ne capture pas l'entête des courbes (angle + valeurs des capteurs)
  22. }
  23. else if(version == 1) //Win 2000/Xp
  24. {
  25.  //MessageBox("2k/XP","" );
  26.  lprect->top += 48; //On ne capture pas l'entête des courbes (angle + valeurs des capteurs)
  27. }
  28. else if(version == -1) //Erreur dans la détermination de la version
  29. {
  30.  //MessageBox("???","" );
  31.  lprect->top += 40;
  32. }
  33. lprect->right-=5;
  34. lprect->bottom-=5;
  35. bmp.bmWidth=(lprect->right)-(lprect->left);
  36. bmp.bmHeight=(lprect->bottom)-(lprect->top);
  37. HBITMAP hbmScreen=CreateCompatibleBitmap(hdcScreen,
  38.  bmp.bmWidth,
  39.  bmp.bmHeight);
  40. if(hbmScreen==0)
  41.  MessageBox("Erreur 1","Erreur",MB_ICONSTOP);
  42. if(!SelectObject(hdcCompatible,hbmScreen))
  43.  MessageBox("Erreur 2","Erreur",MB_ICONSTOP);
  44. if(!BitBlt(hdcCompatible,
  45.  0,0,
  46.  bmp.bmWidth,bmp.bmHeight,hdcScreen,
  47.  lprect->left,lprect->top,
  48.  SRCCOPY))
  49.   MessageBox("Erreur 3","Erreur",MB_ICONSTOP);
  50. PBITMAPINFO info;
  51. info=CreateBitmapInfoStruct(hbmScreen);
  52. if(info!=NULL)
  53. {
  54.  sprintf(fichierbmp,"c%02dt%02d.bmp",axe,courbe_courante);
  55.  sprintf(fichiergif,"c%02dt%02d.gif",axe,courbe_courante);
  56.  CreateBMPFile(fichierbmp,info,hbmScreen,hdcCompatible);
  57.  // si test.gif existe, l'effacer!
  58.  if(fichier_existe(fichiergif))
  59.   DeleteFile(fichiergif);
  60.  // convertit
  61.  sprintf(command,"..\\..\\..\\..\\..\\GiFFY /a %s",fichierbmp);
  62.  WinExec(command,SW_HIDE);
  63.  // la conversion s'est-elle (à priori) bien déroulée?
  64.  if(!fichier_existe(fichiergif))
  65.  {
  66.   MessageBox("Erreur lors de la conversion","Erreur",MB_ICONSTOP);
  67.  }
  68.  else
  69.  {
  70.   DeleteFile(fichierbmp);
  71.   //MessageBox("Courbe validée pour exportation!","Information",MB_ICONINFORMATION);
  72.  }
  73. }
  74. else
  75. {
  76.  MessageBox("La courbe n'a pas pu être exportée!","Erreur",MB_ICONEXCLAMATION);
  77. }
  78. DeleteDC(hdcScreen);


---------------
J'aime pas Apple...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [VC++6] Sauvegarde d'une view en fichier bmp

 

Sujets relatifs
[JAVA] Copie de fichier et destination inexistanteComment partagé un fichier excel en VBA ??
Batch + roulement de fichierDroits d'accès pour envoie de fichier par formulaire
[C++/wxWidgets/MSW] Savoir si un fichier est système[VBS] Obtenir le nom long du fichier par clic droit
Commande DOS : uploader un fichierC++ ou C# pour une application de gestionde fichier
Parcours d'un fichier Excel[batch]Réccupérer la date de création/modification d'un fichier,
Plus de sujets relatifs à : [VC++6] Sauvegarde d'une view en fichier bmp


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR