Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede crear ventanas directamente desde CWndo derivar nuevas clases de ventana de CWnd. Es la forma en que normalmente crea sus propias ventanas personalizadas. Sin embargo, la mayoría de las ventanas usadas en un programa de marco se crean a partir de una de las CWndclases de ventana de marco derivadas proporcionadas por MFC.
Clases de ventana marco
CFrameWnd
Se usa para ventanas de marco SDI que enmarcan un único documento y su vista. La ventana de marco es la ventana de marco principal de la aplicación y la ventana de marco del documento actual.
CMDIFrameWnd
Se usa como ventana de marco principal para aplicaciones MDI. La ventana de marco principal es un contenedor para todas las ventanas de documentos MDI y comparte su barra de menús con ellos. Una ventana de marco MDI es una ventana de nivel superior que aparece en el escritorio.
CMDIChildWnd
Se utiliza para los documentos individuales abiertos en una ventana marco principal MDI. Una ventana marco secundaria MDI contenida en la ventana marco principal MDI enmarca cada uno de los documentos y sus vistas. Una ventana secundaria de MDI tiene un aspecto similar a una ventana de marco estándar, pero está contenida dentro de una ventana de marco MDI en lugar de estar en el escritorio. Sin embargo, la ventana secundaria MDI carece de una barra de menús propia. Debe compartir la barra de menús de la ventana del marco MDI que la contiene.
Para obtener más información, vea Ventanas de marco.
Otras clases de ventana derivadas de CWnd
Además de las ventanas de marco, se derivan otras categorías principales de ventanas de CWnd:
Vistas:
Las vistas se crean mediante laCWndclaseCViewderivada (o una de sus clases derivadas). Una vista se adjunta a un documento y actúa como intermediario entre el documento y el usuario. Una vista es una ventana secundaria (no un elemento secundario MDI) que rellena normalmente el área cliente de una ventana marco SDI o de una ventana marco secundaria MDI (o la parte del área cliente no cubierta por una barra de herramientas o una barra de estado).Cuadros de diálogo:
Los cuadros de diálogo se crean mediante la clase derivadaCWndCDialog.Formularios:
Las vistas de formulario basadas en recursos de plantilla de diálogo, como cuadros de diálogo, se crean mediante clasesCFormView,CRecordViewoCDaoRecordView.Controles:
Los controles como botones, cuadros de lista y cuadros combinados se crean mediante otras clases derivadas deCWnd. Consulte Temas de control.Barras de control:
Ventanas secundarias que contienen controles. Entre los ejemplos se incluyen barras de herramientas y barras de estado. Consulte Barras de control.
Jerarquía de clases de ventana
Consulte el gráfico de jerarquía de MFC en la referencia de MFC. Las vistas se explican en la arquitectura de documentos y vistas. Los cuadros de diálogo se explican en Cuadros de diálogo.
Crear sus propios tipos de ventana para un propósito especial
Además de las clases de ventana proporcionadas por la biblioteca de clases, puede necesitar ventanas secundarias con un propósito especial. Para crear este tipo de ventana, cree su propia CWnd clase derivada y convértalo en una ventana hija de un marco o vista. Tenga en cuenta que el marco administra la extensión del área cliente de una ventana marco de documento. La mayoría del área de cliente se administra mediante una vista, pero otras ventanas, como barras de control o sus propias ventanas personalizadas, pueden compartir el espacio con la vista. Es posible que tenga que interactuar con los mecanismos de las clases CView y CControlBar para colocar ventanas hijas en el área cliente de una ventana de marco.
La creación de ventanas describe la creación de objetos de ventana y las ventanas que administran.