Megosztás a következőn keresztül:


CCreateContext struktúra

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 a NULL mutató átadható.

  • Felülírható tagfüggvények, például CFrameWnd::OnCreateClientaz CCreateContext argumentum 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