Compartir a través de


Aspectos básicos de la barra de herramientas

En este artículo se describe la implementación fundamental de MFC que le permite agregar una barra de herramientas predeterminada a la aplicación seleccionando una opción en el Asistente para aplicaciones. Temas cubiertos:

Opción de la barra de herramientas del Asistente para aplicaciones

Para obtener una sola barra de herramientas con botones predeterminados, seleccione la opción de barra de herramientas Acoplamiento estándar en la página con la etiqueta Características de la interfaz de usuario. Esto agrega código a la aplicación que:

  • Crea el objeto de barra de herramientas.

  • Administra la barra de herramientas, incluida su capacidad de acoplar o flotar.

Barra de herramientas en código

La barra de herramientas es un objeto CToolBar declarado como miembro de datos de la clase de la CMainFrame aplicación. En otras palabras, el objeto de la barra de herramientas está incrustado en el objeto de ventana del marco principal. Esto significa que MFC crea la barra de herramientas cuando crea la ventana de marco y destruye la barra de herramientas cuando destruye la ventana de marco. La siguiente declaración de clase parcial, para una aplicación de interfaz de documento múltiple (MDI), muestra los miembros de datos de una barra de herramientas incrustada y una barra de estado incrustada. También muestra la invalidación de la OnCreate función miembro.

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 se produce en CMainFrame::OnCreate. MFC llama a OnCreate después de crear la ventana para el marco, pero antes de que sea visible. El valor predeterminado OnCreate que genera el Asistente para aplicaciones realiza las siguientes tareas de la barra de herramientas:

  1. Llama a la CToolBar función Create miembro del objeto para crear el objeto CToolBarCtrl subyacente.

  2. Llama a LoadToolBar para cargar la información de recursos de la barra de herramientas.

  3. Llama a funciones para habilitar la acoplamiento, flotante y sugerencias de herramientas. Para obtener más información sobre estas llamadas, consulte el artículo Acoplamiento y barras de herramientas flotantes.

Nota:

El ejemplo general de MFC DOCKTOOL incluye ilustraciones de las barras de herramientas MFC antiguas y nuevas. Las barras de herramientas que usan 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.

Las llamadas a sugerencias de herramientas, flotantes y acoplamiento son opcionales. Puede quitar esas líneas de OnCreate si lo prefiere. El resultado es una barra de herramientas que permanece fija, no puede flotar o rehacer y no puede mostrar sugerencias de herramientas.

Edición del recurso de la barra de herramientas

La barra de herramientas predeterminada que obtiene con el Asistente para aplicaciones se basa en un recurso personalizado RT_TOOLBAR , introducido en la versión 4.0 de MFC. Puede editar este recurso con el editor de la barra de herramientas. El editor le permite agregar, eliminar y reorganizar fácilmente botones. Contiene un editor gráfico para los botones que es muy similar al editor de gráficos generales en Visual C++. Si editó barras de herramientas en versiones anteriores de Visual C++, ahora encontrará la tarea mucho más fácil.

Para conectar un botón de barra de herramientas a un comando, asigne al 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 la barra de herramientas. A continuación, cree una función de controlador para el comando (consulte Asignación de mensajes a funciones para obtener más información).

Las nuevas funciones miembro de CToolBar funcionan con el recurso RT_TOOLBAR . LoadToolBar ahora tiene el lugar de LoadBitmap para cargar el mapa de bits de las imágenes de botón de la barra de herramientas y SetButtons para establecer los estilos de botón y conectar botones con imágenes de mapa de bits.

Para obtener más información sobre el uso del editor de la barra de herramientas, consulte Editor de barras de herramientas.

Varias barras de herramientas

El Asistente para aplicaciones 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 barras de herramientas adicionales basadas en el código generado por el asistente para la barra de herramientas predeterminada.

Si desea mostrar una barra de herramientas como resultado de un comando, deberá:

  • Cree un nuevo recurso de barra de herramientas con el editor de la barra de herramientas y cárgelo con OnCreate la función miembro LoadToolbar .

  • Inserte un nuevo objeto CToolBar en la clase principal de ventana de marco.

  • Realice las llamadas de función adecuadas en OnCreate para acoplar o flotar la barra de herramientas, establezca sus estilos, etc.

¿Qué quieres saber más sobre

Consulte también

Implementación de la barra de herramientas de MFC