Asylum kódja alapján kitaláltam, hogy most nekem editort kéne már csinálni, mert kényelmetlen konzolból "fordítgatni" a modelleket. Szóval elkezdtem WinApi segítségével különböző controlokat megvalósítani, egyelőre csak menü és gomb van, de ez most már könnyen bővíthető, sikerült pár osztályt csinálni, ami egész jól elfedi, és már majdnem annyira könnyű kód szinten használni, mint a c#-os .net-es WinForms-os cuccot.
Még van egy kis hibája a dolognak. Egy olyasfajta event handlert valósítottam meg függvénypointer segítségével. Ami a gond ezzel, az az, hogy az egyik osztályból akarom kvázi meghívni egy másik osztály metódusát. Ami megy, csak így a másik osztály adattagjait nem tudom használni. Két megoldás lehetséges, ezek (és maga a probléma is) ismertetve itt vannak: http://yscik.com/jf/forums.php?m=posts&p=167223#167223
Ajánlott bejegyzések:
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
DR.version · http://m-12.blog.hu 2011.10.22. 23:42:48
{
virtual EVENT_MouseLeftClick() {}
};
class A : BASE
{
virtual EVENT_MouseLeftlick()
{
//todo
}
}
na hat en valahogy igy csinalnam, virtual fugvenyekkel egyszeru, az eventhandlernek meg csak at kell adni az object cimet
Pretender 2011.10.23. 07:47:25
Van egy rakat fajta controlom, aminek vagy template segítségével átadom az osztályt, ahol létrehozom (és hozzáadom) őket, vagy továbbra is amúgy lesz (instance).
Persze lehet, hogy nem jóra gondolok, de:
van egy WinForm osztályom, amikben a Controlokból egy map, ott van az üzenetkezelő, stb. Ebből az osztályból örököltetek egyet (kicsit úgy, mint a c#-ban az XY : Form), és itt adom hozzá, és állítom be a Controlokat (ahol a Controlhoz hozzárendelem a WinForm-ból örökölt osztály metódusát)
DR.version · http://m-12.blog.hu 2011.10.23. 16:27:37
ezert kell a virtual fuggveny,amelyek kikuszobolik ezta problemat
nalam kicsit bonyin van megcsinalva mivel nem hasznalok cpp filokat csak .h-t es trukkozni kell a fuggosegek miatt
de neked szerintem eleg egy winform osztaly amiben az osszes esemeny virtual fuggveny, es az objectek cimeit egy statikus listaba adod hozza
aztan minden olyan osztalyban amiben hasznalni akarsz esemenyt ,orokolteted a winformbol
ha jol emlexem a c#-ben is igy mukodik
Pretender 2011.10.23. 17:04:22
Ahol van az üzenetkezelő, ott van egy statikus map<hwnd,Control*>, amiben ugye a controlok példányai a saját kis handlerjükkel. Amúgy is fel akartam már rakni, de akkor most került rá sor:
people.inf.elte.hu/csataci/scream/
itt a Form.zip. (még w.i.p., szóval lehetnek benne furcsa dolgok :D)
GizmoSDK 2011.10.24. 14:54:08
Pretender 2011.10.24. 15:50:08
GizmoSDK 2011.10.26. 15:08:01
Tiberius 2012.02.28. 09:29:24
Jobban ajánlom a WinAPI helyett az MFC-t. Szerintem jóval könnyebb benne nagyobb ablakos projekteket csinálni. Ha ezt az editort később bővíteni akarod, nagyon sokat kell pötyögni, hogy hatása legyen, ott meg néhány kattintás (plusz némi kód persze).
Az MFC-ben jó az, hogy WinAPI-ra épül és bár elég perverz dolog abban fejleszteni, nem annyira perverz, mint a WinAPI (én is ezzel kezdtem, aztán jött az MFC).
Pretender 2012.02.28. 09:35:26
Tiberius 2012.02.28. 17:47:50
Sípos Máriának van egy nagyon jó könyve az MFC-ről, olvass bele (már letölthető, de nem tudom, hogy legálisan-e).
Pretender 2012.02.28. 18:43:47