Bonjour, j'ai voulu faire le principe de la barre de tâche mozilla ou windows ou quand on passe par exemple la souris sur fichier ou sur édition sa devient bleu le problème c'est que je n'arrive pas à y faire fonctionné ; quand je passe sur fichier ou édition ça ne se met pas en surbrillance bleu.

je pense que cela doit venir de mes if mais j'ai eu beau y retourné dans tous les sens ça ne fonctionne pas

Si vous pouviez m'aider à résoudre mon problème ce serai super sympa ; merci par avance.

Voici mon code plus les 2 sprites de barre de tache celle grisé et celle en bleu à télécharger avec MU :
http://www.megaupload.com/?d=99DV3Z5J BarreDeTache.bmp
http://www.megaupload.com/?d=EIWZRW9H BarreDeTacheEnBleu.bmp


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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
 
 
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <SDL_image.h>
 
 
int main(int argc, char *argv[])
{
 
 
    SDL_Surface *ecran = NULL, *imageDeFond = NULL, *BarreDeTache = NULL, *BarreDeTache2 = NULL;
 
    SDL_Rect positionFond, posBarreDeTache, posBarreDeTache2, posBarreDeTache3[2];
 
    int x = 0, y = 0;
 
    int continuer = 1;
 
    SDL_Event event;
 
    positionFond.x = 0;
    positionFond.y = 0;
 
    posBarreDeTache.x = 0;
    posBarreDeTache.y = 0;
 
posBarreDeTache3[0].x = 0;
posBarreDeTache3[0].y = 0;
posBarreDeTache3[0].w = 45;
posBarreDeTache3[0].h = 24;
 
posBarreDeTache3[1].x = 45;
posBarreDeTache3[1].y = 0;
posBarreDeTache3[1].w = 51;
posBarreDeTache3[1].h = 24;
 
    SDL_Init(SDL_INIT_VIDEO);
 
    SDL_WM_SetIcon(IMG_Load("sdl_icone.bmp"), NULL);
 
    ecran = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE);
    SDL_WM_SetCaption("Chargement d'images en SDL", NULL);
 
    imageDeFond = IMG_Load("lac_en_montagne.bmp");
    SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);
 
    BarreDeTache = IMG_Load("BarreDeTache.bmp");
    SDL_BlitSurface(BarreDeTache, NULL, ecran, &posBarreDeTache);
 
    BarreDeTache2 = IMG_Load("BarreDeTacheEnBleu.bmp");
 
   while (continuer)
    {
 
SDL_WaitEvent(&event);
 
        switch(event.type)
        {
            case SDL_QUIT:
                continuer = 0;
                break;
            case SDL_MOUSEBUTTONUP:
 
                if (event.button.button == SDL_BUTTON_RIGHT)
                continuer = 0;
 
            case SDL_MOUSEMOTION:
 
                x = event.motion.x;
                y = event.motion.y;
 
if ((x > posBarreDeTache.x) && (x < posBarreDeTache.x + posBarreDeTache.w-334)&&(y > posBarreDeTache.y) && (y < posBarreDeTache.y + posBarreDeTache.h))
                       {
                      SDL_BlitSurface(BarreDeTache2, posBarreDeTache3, ecran, &posBarreDeTache3[0]);
                       }
 
if ((x > 45) && (x < 96)&&(y > posBarreDeTache.y) && (y < posBarreDeTache.y + posBarreDeTache.h))
                       {
                       SDL_BlitSurface(BarreDeTache2, posBarreDeTache3, ecran, &posBarreDeTache3[1]);
                       }
 
 
 if (!((x > 0) && (x <45)&&(y > posBarreDeTache.y) && (y < posBarreDeTache.y + posBarreDeTache.h)))
                       {
                       SDL_BlitSurface(BarreDeTache, NULL, ecran, &posBarreDeTache);
                       }
 
 
if (!((x > 45) && (x < 96)&&(y > posBarreDeTache.y) && (y < posBarreDeTache.y + posBarreDeTache.h)))
                       {
                       SDL_BlitSurface(BarreDeTache, NULL, ecran, &posBarreDeTache);
                       }
 
                break;
 
            case SDL_KEYDOWN:
                switch(event.key.keysym.sym)
                {   case SDLK_ESCAPE:
                        continuer = 0;
                        break;
 
                    default:
                break;
                }
 
                break;
}
 
 
SDL_Flip(ecran);
   }
 
    SDL_FreeSurface(imageDeFond);
    SDL_FreeSurface(BarreDeTache);
    SDL_FreeSurface(BarreDeTache2);
 
    SDL_Quit();
 
    return EXIT_SUCCESS;
}