Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
A keretrendszer akkor használja a CCreateContext struktúrát, amikor létrehozza a dokumentumhoz társított keretablakokat és nézeteket.
Szemantika
struct CCreateContext
Megjegyzések
CCreateContext egy struktúra, és nem rendelkezik alaposztálysal.
Amikor létrehoz egy ablakot, az ebben a struktúrában lévő értékek biztosítják a dokumentum összetevőinek az adatok nézetéhez való csatlakoztatásához használt információkat. Csak akkor kell használnia CCreateContext , ha felülírja a létrehozási folyamat egyes részeit.
A CCreateContext struktúra a dokumentumra, a keretablakra, a nézetre és a dokumentumsablonra mutató mutatókat tartalmaz. Emellett egy olyan mutatót CRuntimeClass is tartalmaz, amely azonosítja a létrehozandó nézet típusát. A futásidejű osztály adatai és az aktuális dokumentummutató segítségével dinamikusan hozhat létre új nézetet. Az alábbi táblázat azt mutatja be, hogy az egyes CCreateContext tagok hogyan és mikor használhatók:
| Tag | Típus | Mire való? |
|---|---|---|
m_pNewViewClass |
CRuntimeClass* |
CRuntimeClass az új létrehozandó nézetből. |
m_pCurrentDoc |
CDocument* |
Az új nézethez társítandó meglévő dokumentum. |
m_pNewDocTemplate |
CDocTemplate* |
Az új MDI-keretablak létrehozásához társított dokumentumsablon. |
m_pLastView |
CView* |
Az eredeti nézet, amelyen a további nézetek modellezhetők, mint például a felosztóablak-nézetek létrehozása vagy egy második nézet létrehozása egy dokumentumon. |
m_pCurrentFrame |
CFrameWnd* |
Az a keretablak, amelyen a további keretablakok modellezhetők, mint egy második keretablak létrehozásakor egy dokumentumon. |
Amikor egy dokumentumsablon létrehoz egy dokumentumot és annak kapcsolódó összetevőit, ellenőrzi a struktúrában CCreateContext tárolt információkat. Nem létező dokumentumhoz például nem szabad nézetet létrehozni.
Megjegyzés:
Az összes befelé mutató CCreateContext mutató nem kötelező, és meghatározatlan vagy ismeretlen is lehet NULL .
CCreateContext a "Lásd még" területen felsorolt tagfüggvények használják. Ha felül szeretné bírálni ezeket a függvényeket, tekintse meg ezeknek a függvényeknek a leírását.
Íme néhány általános irányelv:
Amikor argumentumként adja át az ablaklétrehozáshoz, a
CWnd::CreateCFrameWnd::CreateCFrameWnd::LoadFramelétrehozási környezet határozza meg, hogy az új ablakhoz mi legyen csatlakoztatva. A legtöbb ablak esetében a teljes struktúra nem kötelező, és aNULLmutató átadható.Felülírható tagfüggvények, például
CFrameWnd::OnCreateClientazCCreateContextargumentum megadása nem kötelező.A nézetlétrehozásban részt vevő tagfüggvények esetében elegendő információt kell megadnia a nézet létrehozásához. Az osztóablak első nézetéhez például meg kell adnia a nézetosztály adatait és az aktuális dokumentumot.
Ha a keretrendszer alapértelmezéseit használja, általában figyelmen kívül hagyhatja CCreateContext. Ha részletesebb módosításokat kísérel meg, a Microsoft Foundation osztálykódtár forráskódja vagy a mintaprogramok, például a VIEWEX útmutatást ad. Ha elfelejt egy szükséges paramétert, egy keretrendszer-állítás meg fogja mondani, hogy mit elfelejtett.
További információ: CCreateContextMFC minta VIEWEX.
Requirements
Fejléc: afxext.h
Lásd még
hierarchiadiagram
CFrameWnd::Létrehozás
CFrameWnd::LoadFrame
CFrameWnd::OnCreateClient
CSplitterWnd::Létrehozás
CSplitterWnd::CreateView
CWnd::Létrehozás