Menü problémák. Hogy oldjam meg?
Sziasztok!
Az lenne a kérdésem,hogy pl.: a játékoknál hogyan oldják meg,hogy ha rákattintanak pl.: az Új játék gombra akkor eltűnnek a gombok és új dolgok jönnek elő?
El kell őket rejteni meg stb,vagy van valami külön funkció erre?Esetleg lehet külön ablakokat létrehozni? (pl.: Főmenű ablak átvált Új játék ablakká,majd a vissza gombnál ismét a főmenü ablakká.
(Vendégem volt tegnap nem tudtam írni tovább...)
Van egy void InitializeComponent(void) eljárás aminek a forráskódját az IDE automatikusan generálta. Ott van forráskód szinten hogy amikor elindul a program megszületik a főablak Form1 típusú objektum ő létrehozza a gyerek GUI objektumait pl gombokat és elhelyezi adott kordináltákkal adott helyre pl this->button1->Location = System::Drawing::Point(60, 44); 60,40-es koordináltákra,
adott mérettel pl this->button1->Size = System::Drawing::Size(64, 33);
A kattintás esemény bekövetkezésekkor megadja milyen metódust kell meghívni
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click) ami valójában egy Callback függvény,(visszahívható függvény, az OS meghívja ha az adott esemény bekövetkezik).
De mi is valójában a button1? Egy gomb a neve is utal rá.
Egy System::Windows::Forms::Button^ típusú változó ez ott van a forráskódba automatikusan deklarálva. Valójába egy referencia érték, egy mutató ami "távoli" objektumra mutat rá, (amely objektum a gcnew-el lett létrehozva)
"és ha rákattint a gombra,akkor azt szeretném,hogy létrehozzon bizonyos dolgokat, és elrejtse a gombot amire rákattintott."
Elrejteni egyszerű: ha button1 a gomb neve akkor beírni a button1_Click-hez hogy button1->Visible=false;
Létrehozni már bonyolultabb a InitializeComponent-ban lévő kód mintájára lehet.
Legegyszerűbb ha a gomb kattintásra létrehozza a form-ot még egy példányba.
button1->Visible=false;
this->f=(gcnew Form1());
f->Visible=true;
Az f-et deklarálod a button1 deklarációja után Form1^ f;
Előbb a c++ alapjaival kéne tisztába lenned és az OOP paradigmával. Ez a ms visual studio, saját "nyelvjárást" használ, ez a c++ nyelvnek egy speciális változata.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!