Estructura CCreateContext
El marco usa la estructura CCreateContext
cuando crea las ventanas de marco y las vistas asociadas a un documento.
Sintaxis
struct CCreateContext
Comentarios
CCreateContext
es una estructura y no tiene una clase base.
Al crear una ventana, los valores de esta estructura proporcionan la información que se utiliza para conectar los componentes de un documento a la vista de sus datos. Solo tiene que usar CCreateContext
si invalida partes del proceso de creación.
Una estructura CCreateContext
contiene punteros al documento, la ventana de marco, la vista y la plantilla de documento. También contiene un puntero a CRuntimeClass
que identifica el tipo de vista que se va a crear. La información de la clase en tiempo de ejecución y el puntero del documento actual se usan para crear dinámicamente una vista nueva. En la tabla siguiente, se sugiere cómo y cuándo se puede usar cada miembro CCreateContext
:
Miembro | Tipo | Para qué sirve |
---|---|---|
m_pNewViewClass |
CRuntimeClass* |
CRuntimeClass de la vista nueva que se va a crear. |
m_pCurrentDoc |
CDocument* |
Documento existente que se va a asociar a la vista nueva. |
m_pNewDocTemplate |
CDocTemplate* |
Plantilla de documento asociada a la creación de una ventana de marco MDI nueva. |
m_pLastView |
CView* |
Vista original en la que se modelan vistas adicionales, como en la creación de vistas de ventana divisora o la creación de una segunda vista en un documento. |
m_pCurrentFrame |
CFrameWnd* |
Ventana de marco en la que se modelan ventanas de marco adicionales, como en la creación de una segunda ventana de marco en un documento. |
Cuando una plantilla de documento crea un documento y sus componentes asociados, valida la información almacenada en la estructura CCreateContext
. Por ejemplo, no se debe crear una vista para un documento inexistente.
Nota:
Todos los punteros de CCreateContext
son opcionales y pueden ser NULL
si no se especifican o sin son desconocidos.
Las funciones miembro que aparecen en "Vea también" usan CCreateContext
. Consulte las descripciones de estas funciones para conocer información específica si tiene previsto invalidarlas.
A continuación, se muestran algunas directrices generales:
Cuando se pasa como argumento para la creación de ventanas, como en
CWnd::Create
,CFrameWnd::Create
yCFrameWnd::LoadFrame
, el contexto de creación especifica a qué se debe conectar la ventana nueva. Para la mayoría de las ventanas, toda la estructura es opcional y se puede pasar un punteroNULL
.Para las funciones miembro que se pueden invalidar, como
CFrameWnd::OnCreateClient
, el argumentoCCreateContext
es opcional.Para las funciones miembro implicadas en la creación de una vista, debe proporcionar información suficiente para crear la vista. Por ejemplo, para la primera vista de una ventana divisora, debe proporcionar la información de la clase de vista y el documento actual.
En general, si usa los valores predeterminados del marco, puede omitir CCreateContext
. Si intenta realizar modificaciones más avanzadas, el código fuente de la biblioteca MFC (Microsoft Foundation Class) o los programas de ejemplo, como VIEWEX, lo guiarán en el proceso. Si olvida un parámetro necesario, una aserción del marco le indicará lo que olvidó.
Para más información sobre CCreateContext
, consulte el ejemplo VIEWEX de MFC.
Requisitos
Encabezado: afxext.h
Consulte también
Gráfico de jerarquías
CFrameWnd::Create
CFrameWnd::LoadFrame
CFrameWnd::OnCreateClient
CSplitterWnd::Create
CSplitterWnd::CreateView
CWnd::Create