Changer le titre de sa fenêtre en C

Fermé
lapioche - 25 nov. 2009 à 17:41
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 26 nov. 2009 à 00:47
Bonjour, je commence à programmer en C, mais je rencontre une difficulté sur mon chemin; je n'arrive pas à changer le titre de ma fenêtre. J'ai tout ce qu'il me faut mais en fait je ne sait pas ou placer l'instruction pour changer mon titre. Voilà moi j'ai déjà ça:

#ifdef __cplusplus
#include <cstdlib>
#else
#include <stdlib.h>
#endif
#ifdef __APPLE__
#include <SDL/SDL.h>
#else
#include <SDL.h>
#endif

int main ( int argc, char** argv )
{
// initialize SDL video
if ( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{
printf( "Unable to init SDL: %s\n", SDL_GetError() );
return 1;
}

// make sure SDL cleans up before exit
atexit(SDL_Quit);

// create a new window
SDL_Surface* screen = SDL_SetVideoMode(640, 480, 16,
SDL_HWSURFACE|SDL_DOUBLEBUF);
if ( !screen )
{
printf("Unable to set 640x480 video: %s\n", SDL_GetError());
return 1;
}

// load an image
SDL_Surface* bmp = SDL_LoadBMP("a.bmp");
if (!bmp)
{
printf("Unable to load bitmap: %s\n", SDL_GetError());
return 1;
}

// centre the bitmap on screen
SDL_Rect dstrect;
dstrect.x = (screen->w - bmp->w) / 2;
dstrect.y = (screen->h - bmp->h) / 2;

// program main loop
bool done = false;
while (!done)
{
// message processing loop
SDL_Event event;
while (SDL_PollEvent(&event))
{
// check for messages
switch (event.type)
{
// exit if the window is closed
case SDL_QUIT:
done = true;
break;

// check for keypresses
case SDL_KEYDOWN:
{
// exit if ESCAPE is pressed
if (event.key.keysym.sym == SDLK_ESCAPE)
done = true;
break;
}
} // end switch
} // end of message processing

// DRAWING STARTS HERE

// clear screen
SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 0, 0, 0));

// draw bitmap
SDL_BlitSurface(bmp, 0, screen, &dstrect);

// DRAWING ENDS HERE

// finally, update the screen :)
SDL_Flip(screen);
} // end main loop

// free loaded bitmap
SDL_FreeSurface(bmp);

// all is well ;)
printf("Exited cleanly\n");
return 0;
}


Mais pour changer mon titre il me faut placer ça:

int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_VIDEO);

SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
SDL_WM_SetCaption("Ma super fenêtre SDL !", NULL);

pause();

SDL_Quit();

return EXIT_SUCCESS;
}

je vous remeçie.
A voir également:

1 réponse

Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
26 nov. 2009 à 00:47
tu as déjé une fonction main au début de ton programme... le code qui change le titre, tu n'as qu'à le copier dans ton main() à toi.

c'est ça le code SDL_WM_SetCaption("Ma super fenêtre SDL !", NULL);
et tu auras besoin de faire :
SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);

mais pas de copier cette ligne
SDL_Init(SDL_INIT_VIDEO);

car tu l'as déjà faite.
0