Bonjour à tous,
je me permet de requérir à votre aide.
Je viens de dessiner dans un axe Oxy mon signal provenant d'une classe extérieure. Je voudrai maintenant y ajouter des boutons afin de changer les échelles,..
Mais avant de créer un bouton je voudrai juste gérer les évènements. Je commence par le plus simple: appuyer sur 'echap' et cela ferme le programme.
Pour le moment lorsque j'appuie sur 'echap' mon programme arrête de dessiner et lorsque je relâche il continue de dessiner.
J'ai mis ci-dessous, les grandes lignes de mon programme.
J'ai beau le retourner dans tous les sens, je n'arrive pas à gérer cet évènement, et du coup je n'arrive pas à gérer les autres.
Merci par avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 SDL_SURFACE *screen,*graph; //screen est ma fenetre principale //graph est ma fenetre pour le dessin SDL_INIT_VIDEO screen = SDL_SetVideoMode graph = SDL_CreateRGBSurface int continuer =1; while (continuer) { SDL_FillRect(screen,..); for (j=0;j<10;j++) { SDL_Rect position_graph; position_graph.x =10; position_graph.y=30; SDL_FillRect(graph,..); SDL_BlitSurface(graph); int i; for(i=0;i<9;i++) {ligne();//fonction qui trace une ligne} /* encore plein de petites boucles afin de dessiner mes axes et graduations */ for (i=j*640;i<640+j*640;i++) //ma fenetre de dessin fait 640 pixels de large { SDL_PollEvent(&event); switch(event.type) { case SDL_QUIT: continuer =0; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_ESCAPE: continuer =0; break; default: break; } break; default: putpixel(i%640+40,(signal.param[i]*80+370)); //affichage des points de mon signal. Signal contenu dans un tableau d'un classe annexe. } SDL_Flip(screen); } } } SDL_FreeSurface(graph); SDL_Quit();
Partager