HTML

Friss topikok

  • Pretender: @Tiberius (the one): hallottam mondjuk már róla, de teljesen abban a tudatban voltam, hogy az mana... (2012.02.28. 18:43) Winapi Winforms
  • Pretender: @version: oké :) most végül lehet, h találtam valakit, majd látjuk ;) (2011.12.08. 19:26) Háló 2

2011.10.20. 21:05 Pretender

Winapi Winforms

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

11 komment


A bejegyzés trackback címe:

https://screamengine.blog.hu/api/trackback/id/tr833318563

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

class BASE
{
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

@version: Ennek így most hirtelen nem látom értelmét. :(
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

@Pretender: szerintem az a jelenlegi problemad hogy statikus fuggvenyeket hivsz meg, es emiatt nem latod a lokalis adattagokat
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

@version: nincsen statikus függvényem :)
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

Csak nem proginf? :D

Tiberius 2012.02.28. 09:29:24

Hali Pretender!
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 (the one): az nem managed c++t igényel? Nekem ahhoz nincs gyomrom :)

Tiberius 2012.02.28. 17:47:50

Neeem! Szerencsére semmi köze hozzá! 1992-ben jött ki az 1.0-ás. Kb. egy framework, ami a WinAPI-ra épül. 100%-ban natív C++! Régen én is azért viszolyogtam tőle, mert azt hittem, hogy managed.
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

@Tiberius (the one): hallottam mondjuk már róla, de teljesen abban a tudatban voltam, hogy az managed c++, de akkor lecsekkolom majd, köszi :)
süti beállítások módosítása