Need help_API - debutant.

JimyRyan Messages postés 9 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 19 avril 2004 - 24 juin 2003 à 03:55
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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) :

#include <windows.h>
#include <stdio.h>
#include <time.h>

extern void afficheImage(char monImage[]);
extern void afficheTXT(char monTXT[]);

int coordonneeIMG_x = 0;
int coordonneeIMG_y = 0;
int coordonneeTXT_x = 50;
int coordonneeTXT_y = 50;
HBITMAP imageAAfichier;
HDC hdc;
HDC handleMemoire;
HWND hwnd;
BITMAP bitmap;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
char titreFilm[101];
char nomFichier[30] = "image.bmp";
FILE * fichierTitre;

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));
}

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 juin 2003 à 09:59
SetDIBitsToDevice(hdc, (cxClient - cxDib) / 2, (cyClient - cyDib) / 2, cxDib, cyDib, 0, 0, 0, cyDib, m_pBits, m_pbmi, DIB_RGB_COLORS);
BruNews, ciao...
0
Rejoignez-nous