Exemples de code C affichage image .BMP dans Windows

jcassagne

Nouveau membre
Je souhaite écrire un petit programme dont une des fonctions est d’afficher des images .bmp dans une fenêtre avec ascenseur.
Il faut que ce programme soit le plus indépendant possible de Windows (95-98-… XP) et qu’il s’exécute directement sans installation. Je souhaite, de plus, l’écrire sous Microsoft Visual C++ en C (voire C++).
Quelqu’un pourrait-il me conseiller et m’indiquer où trouver des exemples et quelle librairie utiliser ?
Merci.
 

cyrus31

Nouveau membre
(1) indépendant possible => ne pas utiliser les lib dynamiques
(2) C et graphique ..... => tendu
(3) graphique => librairie + (1) => appli lourde !!!

tourne toi vers le VB ;)
 

gambit

Grand Maître
j'ai plein d'exemple de vieux progs que j'ai fait... si tu peux attendre ce soir ...
 

cyrus31

Nouveau membre
[citation=4824,1][nom]gambit a écrit[/nom]j'ai plein d'exemple de vieux progs que j'ai fait... si tu peux attendre ce soir ...
[/citation]

En quel langage ?
 

gambit

Grand Maître
C++ (librairies OWL -> mais on peut le passer en MFC sans trop de pbs)
 

nicoprog

Grand Maître
Perso pour cette tache j'aurai plutot utilisé Delphi, c'est bcp plus rapide :) mais tu peux avoir tes raisons pour choisir VC++
 

Fredos

Habitué
[citation=4507,1][nom]jcassagne a écrit[/nom]Je souhaite écrire un petit programme dont une des fonctions est d’afficher des images .bmp dans une fenêtre avec ascenseur.
Il faut que ce programme soit le plus indépendant possible de Windows (95-98-… XP) et qu’il s’exécute directement sans installation. Je souhaite, de plus, l’écrire sous Microsoft Visual C++ en C (voire C++).
Quelqu’un pourrait-il me conseiller et m’indiquer où trouver des exemples et quelle librairie utiliser ?
Merci.

[/citation]

Il faut passer par l'API win32. C'est un peu pénible à faire mais krosoft fournit gratuitement un sample qui montre comment le faire tout à fait correctement. Le sample s'appelle DIBLOOK, le souci étant qu'il faut télécharger tous les samples du VC6 pour l'avoir (130Mo de code).

Tu peux aussi faire ça comme un bourrin si tu utilises les MFC.

dans ta fenêtre, tu ajoutes un control statique soit avec le wizard (faut alors lui associer une variable) soit directement dans le .h de ta classe (CStatic mon_controle);

Puis dans l'initialisation de la fenetre ou plus tard si tu le veux comme ça :

[cpp]/* loading bitmap */
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, "mon_image.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );

/* setting bitmap */
mon_controle.SetBitmap(hBitmap);[/cpp]

Et puis voilà ! C'est pas tip top parce que ca t'oblige à utiliser un controle, donc plus de ressources, mais ca t'économise pas mal des lignes de code nécessaires pour avoir un prog vraiment clean.

Ah, et puis il faut pas oublier de faire le ménage avant la fin du programme sinon sous windaube95/98/me ton utilisateur risque d'avoir des petits soucis :

[cpp]/* unsetting bitmap */
mon_controle.SetBitmap(NULL);

/* freeing loaded bitmap */
DeleteObject((HGDIOBJ)hBitmap);[/cpp]
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 001
Membres
1 586 388
Dernier membre
mery2005
Partager cette page
Haut