Window (Objetos)
MFC proporciona la clase CWnd para encapsular el identificador HWND
de una ventana. El objeto CWnd
es un objeto de ventana de C++, distinto del HWND
que representa una ventana de Windows pero que lo contiene. Use CWnd
para derivar sus propias clases de ventana secundarias o use una de las muchas clases MFC derivadas de CWnd
. La clase CWnd
es la clase base para todas las ventanas, incluidas las ventanas de marco, los cuadros de diálogo, las ventanas secundarias, los controles y las barras de control como, por ejemplo, las barras de herramientas. Una buena comprensión de la relación entre un objeto de ventana de C++ y un HWND es fundamental para una programación eficaz con MFC.
MFC proporciona cierta funcionalidad predeterminada y administración de ventanas, pero puede derivar su propia clase de CWnd
y usar sus funciones miembro para personalizar la funcionalidad proporcionada. Puede crear ventanas secundarias mediante la construcción de un objeto CWnd
y la llamada a su función miembro Create y, a continuación, personalizar las ventanas secundarias mediante las funciones miembro CWnd
. Puede insertar objetos derivados de CView, como vistas de formulario o vistas de árbol, en una ventana de marco. Además, puede admitir varias vistas de los documentos mediante paneles divisores, proporcionados por la clase CSplitterWnd.
Cada objeto derivado de la clase CWnd
contiene un mapa de mensajes mediante el cual puede asignar mensajes de Windows o identificadores de comandos a sus propios controladores.
La literatura general sobre la programación para Windows es un buen recurso para aprender a usar las funciones miembro CWnd
, que encapsulan las API HWND
.
Funciones para funcionar en un CWnd
CWnd
y sus clases de ventana derivadas proporcionan constructores, destructores y funciones miembro para inicializar el objeto, crear las estructuras subyacentes de Windows y acceder a las HWND
encapsuladas. CWnd
también proporciona funciones miembro que encapsulan las API de Windows para enviar mensajes, acceder al estado de la ventana, convertir coordenadas, actualizar, desplazarse, acceder al Portapapeles y muchas otras tareas. La mayoría de las API de administración de ventanas de Windows que toman un argumento HWND
se encapsulan como funciones miembro de CWnd
. Los nombres de las funciones y sus parámetros se conservan en la función miembro CWnd
. Para más información sobre las API de Windows encapsuladas mediante CWnd
, consulte la clase CWnd.
CWnd y mensajes de Windows
Uno de los principales propósitos de CWnd
es proporcionar una interfaz para controlar mensajes de Windows, como WM_PAINT o WM_MOUSEMOVE. Muchas de las funciones miembro de CWnd
son controladores de mensajes estándar, por ejemplo, las que comienzan con el identificador afx_msg y el prefijo "On", como OnPaint
y OnMouseMove
. Controlar y asignar mensajes incluye los mensajes y su control con detalle. La información que se indica allí se aplica igualmente a las ventanas del marco y a las que crea el mismo usuario con fines especiales.
Qué más quieres saber
Contextos de dispositivo: objetos que hacen que el dispositivo de dibujo de Windows sea independiente
Objetos gráficos: lápices, pinceles, fuentes, mapas de bits, paletas, regiones