Kezdőoldal » Számítástechnika » Programok » Menü problémák. Hogy oldjam meg?

Menü problémák. Hogy oldjam meg?

Figyelt kérdés

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á.


2012. ápr. 23. 16:51
1 2
 11/11 anonim ***** válasza:

(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.

2012. ápr. 24. 13:41
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!