Vizuális programozás és az MFC

Lássuk, hogyan lehet létrehozni egy alkalmazás a párbeszéd, mint a fő ablak segítségével a számítógéppel segített tervezés alkalmazások MFC AppWizard. Amikor létrehoz egy projekt használja ezt az eszközt, meg kell válaszolni egy sor kérdést, hogy milyen típusú és a képesség, hogy hozzon létre alkalmazásokat.

Létrehozása alkalmazás sablon

Először ki kell választani, hogy milyen típusú az alkalmazás a listából: „Single dokumentum” (alkalmazás egyetlen ablak felület), „Multiple dokumentum” (multi-ablakok alkalmazását) vagy a „Dialog alapú” (kérelem alapján a párbeszédablak nélkül a fő ablakban). Miután kiválasztott egy alkalmazás típusa „Dialog alapú” a következő képernyő panel, amelynek célja, hogy meghatározza az alapvető tulajdonságait a kérelmet.

Ebben a panel, akkor adja meg, hogy olyan alkalmazást készítünk információs párbeszédablakban segítséget alrendszer háromdimenziós ellenőrzések a lehetőségét, OLE technológia és a kommunikáció TCP / IP protokollt. Azt is beállíthatja a címet a fő párbeszédablak.

Az utolsó párbeszédablakban megadhatja a nevét a generált osztályok AppWizard pályázati rendszer.

Azonosítása után az összes MFC AppWizard alkalmazás tulajdonságainak létrehoz egy projekt, amely akkor azonnal kap a kidolgozásában és alkalmazás készen áll az indulásra. Miután az alkalmazás megkezdése jelenik meg a képernyőn párbeszédablak két gombbal „OK” és a „Mégsem” -et és a statikus mágneses tér.

pnl projekt számos olyan fájlokat teremtett AppWizard rendszer (lásd. 1. függelék). Tekintsük a célja ezeknek a fájloknak:

A fő alkalmazási osztály

CDlgApp fő alkalmazási osztály határozza dlg.h fájlt, és végre dlg.cpp fájlt.

Mert CDlgApp leírt osztály konstruktor paraméterek nélkül. Ez a szerkesztő akkor használják, amikor az alkalmazást futtató létrehozni CDlgApp osztály objektum.

Amellett, hogy a tervező, a CDlgApp osztály felülbírálja az InitInstance módszer az alap osztály CWinApp. Minden alkalommal, amikor fut egy másik példányát a kérelem ezt a módszert nevezik. Ez az egyetlen módja a fő osztály, amelyet el kell bírálni. Azt jelenti, MFC AppWizard végrehajtja felülírt InitInstance eljárás különböző felhasználói interfész (egyablakos, több ablak alapuló párbeszéd) különböző módokon.

Majd hívja DoModal módszer az objektum osztály DLG CDlgDlg. Ez létrehoz egy párbeszédablak, és megjeleníti azt a képernyőn. Értéket, amelyet DoModal. Ezt fel lehet használni, hogy elemezzék az eredmény a felhasználó interaktív panel.

A fő alkalmazási célja

A dlg.cpp fájl kijelenti globális célkitűzése a fő alkalmazási osztályban. Ez volt a létrehozása ezt a tárgyat, és megkezdi munkáját alkalmazásokhoz.

egy objektum osztály CWinApp (vagy egy osztály belőle származik) tartalmazza minden alkalmazás épült MFC AppWizard, függetlenül a felhasználói felület az alkalmazás.

Táblázat Class Messaging

Táblázat CDlgApp üzenet osztálya hozza létre a AppWizard áll, makrók és BEGIN_MESSAGE_MAP END_MESSAGE_MAP. Köztük makro meghatározó üzeneteket feldolgozza ezt az osztályt. Kezdetben csak egy táblázatot megadott parancsot tartalmazó üzenet azonosítója ID_HELP. Annak kezelésére módszer az úgynevezett OnHelp alap osztály.

Feldolgozatlan üzeneteket továbbítani a feldolgozó a szülő osztály CWinApp. ahogy meg van adva a második paraméter makró BEGIN_MESSAGE_MAP.

Class párbeszédablak

Osztály fő párbeszédablak bejelentett dlgDlg.h fájlt, és végre dlgDlg.cpp fájlt.

CDlgDlg osztály örököl alap osztály CDialog. meghatározott MFC osztály könyvtár. Az osztály konstruktora van egy opcionális paraméter pParent, átvitelére használt az index az alkalmazás főablakát. Ellátja a szerepe a fő ablak párbeszédablak is, így pParent paramétert nem használja.

Szinte az összes kapcsolódó alkalmazással ikon jelenjen meg minimalizálásával alkalmazás. Általában ez az ikon van meghatározva osztály regisztrációs alkalmazás főablakát. pnl alkalmazása nem jelent a fő ablak helyett - használ egy párbeszédablak. Ezért a térkép ikon nem automatikus, és ezért meg kell kezelni a térképezés (képírás m_hIcon azonosító meghatározott osztály CDlgDlg).

CDlgDlg osztály konstruktor meghívja a osztály konstruktor CDialog. Ugyanakkor ő továbbított azonosítóját a párbeszédpanelen, és az ID az alkalmazás főablakát.

A kivitelező test AFX_DATA_INIT egység. Ez ClassWizard hozzá inicializáló kódot elemek CDlgDlg osztály adatokat.

A kivitelező is inicializálja m_hIcon, az írás az ő azonosító ikonok IDR_MAINFRAME:

AfxGetAp eljárás visszaad egy pointert a tárgy a fő alkalmazási osztály (ebben az esetben - a mutatót az objektum theApp).

A párbeszédablak csak egy gombot, és nem kapcsolódik a változók őket. Ez az eljárás azonban DoDataExchange manipulálhatók. Tény, hogy nem végeznek munkát. Az egyetlen dolog, amit csinál - azt kéri az eljárás DoDataExchange alap osztály CDialog.

Ha megjelenik egy párbeszédpanel, hogy új ellenőrzések és összekapcsolják őket azokkal az eszközökkel ClassWizard CDlgDlg osztály adatelemeket az egység kerül AFX_DATA_MAP felhívja DDX funkciók és DDV, végrehajtásához szükséges adatcsere.

Táblázat CDlgDlg üzenet osztály három makrók feldolgozás elvégzésére WM_SYSCOMMAND üzenetek WM_PAINT és WM_QUERYDRAGICON. Ezek található AFX_MSG_MAP blokk, így azok kezelésére használja ClassWizard.

Amikor megjelenítő párbeszédpanel segítségével DoModal funkció létrehozása vagy CreateIndirect. párbeszédablak most átadott WM_INITDIALOG üzenetet. Közvetlen hozzáférés a párbeszéd funkció nem. Ennek megvalósítását tartalmazza a CDialog osztályban.

Válaszul a WM_INITDIALOG üzenet nevezett OnInitDialog módszer. számlázott, mint a virtuális módszer CDialog osztályban. Ezt a módszert nevezik előtt közvetlenül kimenetét a panelre.

MFC AppWizard végrehajtásában ez a módszer hozzáadott több lépésben hozzáadunk egy sort a rendszer menü megjelenítéséhez segítséget alkalmazásáról szóló, valamint a SetIcon kiválasztásának módszere az ikont az alkalmazás.

Ha az inicializálás során a párbeszédablak OnInitDialog eljárás beállítja a bemeneti fókusz egy másik ellenőrző szerv, az eljárás vissza kell HAMIS.

Ha létrehoz egy sablont alkalmazás jelzi, hogy képes megjeleníteni gyors bemutató információkat, ahol az eszköz AppWizard elkészíti a kódrészletet, amely hozzáteszi, a megfelelő sort a menürendszer, valamint a felvezető módszer OnSysCommand üzeneteket a rendszer menüben.

Ez a módszer két paramétert - az azonosító a rendszer menüsor, amely a felhasználó által kiválasztott, és egy paramétert tartalmazó koordinátáit az egér, ha a kiválasztás az egérrel.

Kezelésére választott szabványos menüpontok felülírható a metódust a felvezető eljárás a szülő osztály (kezelésére az alapértelmezett üzenetek), valamint a hozzáadott elemet egy speciális kezelés.

Előlap ellentétben a rendszeres ablak nem tartalmaz beépített kijelző alkalmazás ikonok. Magának az alkalmazásnak kell vigyázni megjelenítő ikonok - az felülírja a OnPaint módszer. Ebben az eljárásban egy alap osztályt hívják OnPaint módszer, vagy maga az alkalmazás ikont jeleníti meg, ha az éppen minimalizálható.

A felhasználó „húzza” az ikon a minimalizált alkalmazások. Ha a felhasználó olyan műveletet hajt végre a ikonra az ablak, egy osztály, amely nem rendelkezik ikonra, majd az úgynevezett OnQueryDragIcon módszer. Ez a módszer, vissza kell adnia az egér azonosítót, amely megjelenik idején „drag and drop” ablak ikon.

A felülírt eljárás OnQueryDragIcon jelenti AppWizard egyszerűen visszaadja az azonosító az alkalmazás ikonjára.

Kapcsolódó cikkek