JimyRyan
Messages postés9Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention19 avril 2004
-
24 juin 2003 à 03:55
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
24 juin 2003 à 09:59
j'ai cree un progamme qui affiche une image (stoquee dans un fichier .bmp), et une phrase (lu a partir d'un fichier TXT), j'ai deux problemes : une fois l'execution du programme fini, j'ai l'image qui reste figer a l'ecran (non mise a jour des fenetres une fois le progamme termine), deplus je sais pas comment je peut faire pour que l'image soit centree (en fonction de la resolution de l'ecrant).
Merci pour votre aide, voivi mon code source (compite avec visual studio 2002) :
fichierTitre = fopen("titre.txt","r");
while (fgets(titreFilm,sizeof(titreFilm),fichierTitre) != NULL);
fclose(fichierTitre);
hdc=GetDC(hwnd); // obtient un handle de contexte de périphérique
handleMemoire = CreateCompatibleDC(NULL); //utilisation du periph ecrant
afficheImage(nomFichier);
afficheTXT(titreFilm);
DeleteDC(handleMemoire); //liberation handel memoire
DeleteObject(imageAAfichier); //supprime le handel image en memoire
}
//----------------------------------------------------------------------------------------
void afficheImage(char monImage[])
{
imageAAfichier = (HBITMAP)LoadImage(NULL,monImage,IMAGE_BITMAP,0,0,LR_LOADFROMFILE );
/* imageAAfichier : Resultat (handel)
(HBITMAP) : forcage de type (le resultat sera de type HBITMAP
NULL : le fichier image est externe au prog
"image.bmp" : le fichier image
IMAGE_BITMA : il type de l'image, ici bimtape
1er 0 : largeur initial
2eme 0 : hauteur initial
LR_LOADFROMFILE : image charger depuis fichier exterieur au prog
*/
SelectObject(handleMemoire,imageAAfichier); //chargement de l'image dans la memoire
GetObject(imageAAfichier,sizeof(bitmap),&bitmap); //determination de la taille de l'image (hauteur, largeur)
BitBlt(hdc,coordonneeIMG_x,coordonneeIMG_y,bitmap.bmWidth,bitmap.bmHeight,handleMemoire,0,0,SRCCOPY); //affichage de l'image a l'ecrant
}
//-----------------------------------------------------------------------------------------
void afficheTXT(char monTXT[])
{
SetTextColor(hdc,RGB(255,0,0)); //ecriture rouge
SetBkColor(hdc,RGB(250,255,36)); //fond jaune
TextOut(hdc,coordonneeTXT_x,coordonneeTXT_y,&monTXT[0],strlen(monTXT));
}