Compartir a través de


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 y CFrameWnd::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 puntero NULL.

  • Para las funciones miembro que se pueden invalidar, como CFrameWnd::OnCreateClient, el argumento CCreateContext 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