Fundamentos de las barras de herramientas
En este artículo se describe la implementación fundamental de MFC que permite agregar una barra de herramientas predeterminada a la aplicación seleccionando una opción en el Asistente para aplicaciones. Entre los temas tratados, se incluyen los siguientes:
La opción de barras de herramientas del Asistente para aplicaciones
La barra de herramientas en código
Editar el recurso de la barra de herramientas
Barras de herramientas varias
La opción de barras de herramientas del Asistente para aplicaciones
Para obtener una única barra de herramientas con los botones predeterminados, seleccione la opción de barras de herramientas estándar de acoplamiento en la página denominada las características de la interfaz de usuario. Esto agrega código a la aplicación que:
Crea el objeto de la barra de herramientas.
Administra la barra de herramientas, incluida su capacidad de acoplar o de flotar.
La barra de herramientas en código
La barra de herramientas es un objeto de CToolBar declarado como miembro de datos de la clase de CMainFrame de la aplicación. Es decir el objeto de la barra de herramientas se inserta en el objeto de la ventana de marco principal. Esto significa que MFC crea la barra de herramientas cuando crea la ventana de marco y destruye la barra de herramientas cuando se destruye la ventana de marco. La declaración de clase parcial siguiente, para una aplicación de (MDI) de interfaz de múltiples documentos, muestra los miembros de datos de una barra de herramientas incrustada y una barra de estado incrustada. También se muestra la invalidación de la función miembro de OnCreate .
class CMainFrame : public CMDIFrameWnd
{
// Implementation
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
// Generated message map functions
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
DECLARE_MESSAGE_MAP()
La creación de la barra de herramientas en CMainFrame::OnCreate. MFC llama a OnCreate después de crear la ventana del cuadro pero antes de que esté visible. OnCreate predeterminado que el Asistente para aplicaciones genera realiza las tareas siguientes de la barra de herramientas:
Llama a la función miembro de crear del objeto de CToolBar para crear el objeto subyacente de CToolBarCtrl .
Llama a LoadToolBar para cargar la información del recurso de la barra de herramientas.
Las llamadas funcionan para habilitar el acoplamiento, la flotante, y la información sobre herramientas. Para obtener más información sobre estas llamadas, vea el artículo Acoplamiento y barras de herramientas flotante.
Nota
El ejemplo DOCKTOOL MFC General incluye ilustraciones de barras de herramientas antiguas y nuevas de MFC.Barras de herramientas que utilizan COldToolbar requieren llamadas en el paso 2 a LoadBitmap (en lugar de LoadToolBar) y a SetButtons.Las nuevas barras de herramientas requieren llamadas a LoadToolBar.
El acoplamiento, la flotante, y las llamadas de información sobre herramientas son opcionales. Puede quitar las líneas de OnCreate si prefiere. El resultado es una barra de herramientas que permanece fija, incapaz de flotar o redock y es de mostrar información sobre herramientas.
Editar el recurso de la barra de herramientas
La barra de herramientas predeterminada que se obtiene con el Asistente para aplicaciones se basa en un recurso personalizado de RT_TOOLBAR , mostrado en la versión 4.0 de MFC. Puede modificar a este recurso con editor de barras de herramientas. El editor permite agregar fácilmente, eliminar, y reorganizar los botones. Contiene un editor gráfico para los botones que es muy similar al editor de gráficos general en Visual C++. Si editó barras de herramientas en las versiones anteriores de Visual C++, ahora encontrará la tarea mucho más fácil.
Para conectar un botón de la barra de herramientas a un comando, se proporciona a botón un identificador de comando, como ID_MYCOMMAND. Especifique el identificador de comando en la página de propiedades del botón en el editor de barras de herramientas. A continuación cree una función controladora para el comando (vea Asignar mensajes a funciones para obtener más información).
Nuevo trabajo de las funciones miembro de CToolBar con el recurso de RT_TOOLBAR . LoadToolBar ahora sustituye a LoadBitmap para cargar el mapa de bits de las imágenes de botón de la barra de herramientas, y SetButtons para establecer estilos de botón y conectar los botones con imágenes de mapa de bits.
Para obtener más información sobre cómo utilizar el editor de barras de herramientas, vea Editor de barras de herramientas.
Barras de herramientas varias
El Asistente para aplicaciones le proporciona una barra de herramientas predeterminada. Si necesita más de una barra de herramientas en la aplicación, puede modelar el código para las barras de herramientas adicionales basadas en el código asistente- generado para la barra de herramientas predeterminada.
Si desea mostrar una barra de herramientas como resultado de un comando, necesitará:
Cree un nuevo recurso de la barra de herramientas con el editor de barras de herramientas y cárguelo en OnCreate mediante la función miembro de LoadToolbar .
Inserte un nuevo objeto de CToolBar en la clase de ventana de marco principal.
Haga las llamadas de función adecuadas en OnCreate para acoplar o desacoplar la barra de herramientas, establezca sus estilos, y así sucesivamente.
¿Sobre qué desea obtener más información?
Clases CToolBar y CToolBarCtrl