Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Közvetlenül a rendszerből CWndhozhat létre ablakokat, vagy új ablakosztályokat is származtathat belőle CWnd. Általában így hozhatja létre saját egyéni ablakait. A keretrendszerprogramban használt ablakok többsége azonban az MFC által biztosított egyik CWnd-származtatott keretablak osztályból jön létre.
Keretablakosztályok
CFrameWnd
Olyan SDI-keretablakokhoz használatos, amelyek egyetlen dokumentumot és annak nézetét keretbe foglalnak. Az ablakkeret mind az alkalmazás fő keretablaka, mind az aktuális dokumentum keretablaka.
CMDIFrameWnd
MDI-alkalmazásoknál fő keretablakként használják. A fő keretablak az összes MDI-dokumentumablak tárolójaként szolgál, és megosztja velük a menüsávját. Az MDI-keretablak egy felső szintű ablak, amely az asztalon jelenik meg.
CMDIChildWnd
Az MDI főkeretablakában megnyitott egyes dokumentumokhoz használható. Minden dokumentumot és annak nézetét egy MDI gyermekkeretablak keretbe foglal, amely az MDI főkeretablakban helyezkedik el. Az MDI gyermekablakok úgy néznek ki, mint egy tipikus keretablak, de nem az asztalon, hanem egy MDI-keretablakban találhatók. Az MDI gyermekablakában azonban nincs saját menüsáv. Meg kell osztania az azt tartalmazó MDI-keretablak menüsorát.
További információ: Keretablakok.
Egyéb ablakosztályok, amelyekből származik CWnd
A keretablakok mellett számos más fő ablakkategória is a következőkből CWndszármazik:
Nézetek:
A nézetek aCWnd-derived osztályCView(vagy annak egyik származtatott osztálya) használatával jönnek létre. A nézet egy dokumentumhoz van csatolva, és közvetítőként működik a dokumentum és a felhasználó között. A nézet egy gyermekablak (nem MDI-gyermek), amely általában kitölti egy SDI-keretablak vagy egy MDI gyermekkeretablak ügyfélterületét (vagy az ügyfélterület azon részét, amelyet nem fed le egy eszköztár vagy állapotsor).Párbeszédpanelek:
A párbeszédpanelek aCWnd-derived osztályCDialoghasználatával jönnek létre.Űrlapok:
Az űrlapnézeteket, amelyek párbeszédpanelsablon-erőforrásokon, például párbeszédpaneleken alapulnak, aCFormView,CRecordViewvagyCDaoRecordViewosztályok segítségével hozzák létre.Vezérlők:
A vezérlők, például a gombok, a listamezők és a kombinált listák más, a forrásbólCWndszármazó osztályok használatával jönnek létre. Lásd: Vezérlő témakörök.Vezérlősávok:
Vezérlőket tartalmazó gyermekablakok. Ilyenek például az eszköztárak és az állapotsávok. Lásd: Vezérlősávok.
Ablak osztályok hierarchiája
Tekintse meg az MFC hierarchiadiagramot az MFC-referenciaban. A nézeteket a dokumentum-/nézetarchitektúra ismerteti. A párbeszédpaneleket a párbeszédpanelek ismertetik.
Saját Special-Purpose ablakosztályok létrehozása
Az osztálytár által biztosított ablakosztályokon kívül szükség lehet speciális célú gyermekablakokra is. Egy ilyen ablak létrehozásához hozzon létre egy saját CWnd-származtatott osztályt, és tegye azt egy keret vagy nézet gyermekablakává. Ne feledje, hogy a keretrendszer kezeli a dokumentumkeretablak ügyfélterületének mértékét. Az ügyfélterület nagy részét egy nézet kezeli, de más ablakok, például vezérlősávok vagy saját egyéni ablakok is megoszthatják a helyet a nézettel. Előfordulhat, hogy az osztályok CView és CControlBar mechanizmusaival kell együttműködnie a gyermekablakok elhelyezéséhez a keretablak ügyfélterületén.
Az ablakok létrehozása az ablakobjektumok és az általuk kezelt ablakok létrehozását ismerteti.