Cgui class (for(int i=0)

frayst Messages postés 31 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 19 juin 2007 - 29 nov. 2005 à 16:54
frayst Messages postés 31 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 19 juin 2007 - 30 nov. 2005 à 10:56
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

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
29 nov. 2005 à 17:41
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...
0
frayst Messages postés 31 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 19 juin 2007
29 nov. 2005 à 18:04
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
0
frayst Messages postés 31 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 19 juin 2007
30 nov. 2005 à 10:56
quelqu'un a une solution ??

frayst
0
Rejoignez-nous