Cgui class (for(int i=0)

Signaler
Messages postés
31
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
19 juin 2007
-
Messages postés
31
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
19 juin 2007
-
Bonjour,
Je suis entraint de coder un gui pour un jeu ...

J'ai cree un vector pour pouvoir creer mes fenetre simplement et pouvoir les draw...

J'ai ajoute une closebox pr chaque fenetre mais lorsque que je clique dessus, sa ferme plusieurs fenetres ..

vector<CGuiMainWin*>Windows;


void CGui::AddMainWindow(int x,int y,int w,int h,string title, bool Close,bool Minimize)
{
CGuiMainWin *newWindow = new CGuiMainWin;


ColorEntry *clr;
clr = colorList.get(21);


newWindow->x = x;
newWindow->y = y;
newWindow->w = w;
newWindow->h = h;
newWindow->title = title;
newWindow->Close = Close;
newWindow->Minimize = Minimize;


Windows.push_back(newWindow);
}

void CGui::InitGui()
{
static bool bFirstTime = true;


if(bFirstTime){
AddMainWindow(120,120,180,130,"MainWindow 1",true,true);
AddMainWindow(340,220,210,190,"MainWindow 2",true,true);
bFirstTime = false;
}

Windows[0]->bDrawn = true;
Windows[1]->bDrawn = true;

for(unsigned int i = 0; i < Windows.size(); ++i)
{
Windows[i]->Draw();
}


}

void CGuiMainWin::Draw()
{


if(this->bDrawn){


CODE DRAW FENETTRE


// Close
if(this->Close==true)
{
DClose(this->x+this->w-15, this->y-16); //draw box


if(mouse.Leftclick(this->x+this->w-15, this->y-16, 13, 13))
{
for(int i=0;i<Windows.size();i++)
{
//Close Code
Windows.erase(Windows.begin()+i);
}
}
}

}
}

Je pense que el code est mauvais a cette endroit : for(int i=0;i<Windows.size();i++)

Pouvez vous maider ??

3 réponses

Messages postés
14985
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
8 mars 2021
94
Bah oui, tu lui dis explicitement: "pour chaque fenêtre dans le vecteur, tu me la ferme"...
Il y a un problème de conception là...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
31
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
19 juin 2007

Donc le principe de cree une fenetre c bon mais comment je fais pour ma close box ?
J'enleve for(int i=0;i<Windows.size();i++) et je met koi a la place pour que quand je close la fenetre ou je suis [i] sa ferme celle ci ?

frayst
Messages postés
31
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
19 juin 2007

quelqu'un a une solution ??

frayst