Compartilhar via


Fundamentos da barra de ferramentas

Este artigo descreve a implementação básica do MFC que permite adicionar uma barra de ferramentas padrão ao seu aplicativo selecionando uma opção no Assistente de Aplicativo. Os tópicos abordados incluem:

A opção Barra de Ferramentas do Assistente de Aplicativo

Para obter uma única barra de ferramentas com botões padrão, selecione a opção barra de ferramentas de Encaixe Padrão na página rotulada como Recursos de Interface do Usuário. Isso adicionará um código ao seu aplicativo que:

  • Criará o objeto da barra de ferramentas.

  • Gerenciará a barra de ferramentas, incluindo sua capacidade de ser encaixada ou flutuar.

A barra de ferramentas no código

A barra de ferramentas é um objeto CToolBar declarado como um membro de dados da classe CMainFrame de seu aplicativo. Em outras palavras, o objeto da barra de ferramentas é inserido no objeto da janela de quadro principal. Isso significa que o MFC cria a barra de ferramentas quando cria a janela de quadro e destrói a barra de ferramentas quando destrói a janela de quadro. A declaração de classe parcial a seguir, para um aplicativo de MDI (interface de vários documentos), mostra os membros de dados de uma barra de ferramentas inserida e uma barra de status inserida. Ele também mostra a substituição da função membro 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()

A criação da barra de ferramentas ocorre em CMainFrame::OnCreate. O MFC chama OnCreate depois de criar a janela para o quadro, mas antes de ela se tornar visível. O padrão OnCreate gerado pelo Assistente de Aplicativo faz as seguintes tarefas de barra de ferramentas:

  1. Chama a função membro Criar do objeto CToolBar para criar o objeto CToolBarCtrl subjacente.

  2. Chama LoadToolBar para carregar as informações de recurso da barra de ferramentas.

  3. Chama funções para habilitar as dicas de ferramenta, flutuação e encaixe. Para obter detalhes sobre essas chamadas, consulte o artigo Barra de ferramentas de Encaixe e Flutuantes.

Observação

O exemplo geral do MFC DOCKTOOL inclui ilustrações de barras de ferramentas antigas e novas do MFC. As barras de ferramentas que usam COldToolbar exigem chamadas na etapa 2 para LoadBitmap (em vez de LoadToolBar) e para SetButtons. As novas barras de ferramentas exigem chamadas para LoadToolBar.

As chamadas para dicas de ferramenta, flutuação e encaixe são opcionais. Você pode remover essas linhas de OnCreate se quiser. O resultado é uma barra de ferramentas que permanece fixa, incapaz de flutuar ou desencaixar e que não consegue exibir dicas de ferramenta.

Editar o recurso de barra de ferramentas

A barra de ferramentas padrão que você obtém com o Assistente de Aplicativo baseia-se em um recurso personalizado RT_TOOLBAR, introduzido no MFC versão 4.0. Você pode editar esse recurso com o editor de barra de ferramentas. O editor permite que você adicione, exclua e reorganize facilmente os botões. Ele contém um editor gráfico para os botões que é muito semelhante ao editor de gráficos gerais no Visual C++. Se você editou barras de ferramentas em versões anteriores do Visual C++, achará a tarefa muito mais fácil agora.

Para conectar um botão da barra de ferramentas a um comando, você fornece ao botão uma ID de comando, como ID_MYCOMMAND. Especifique a ID de comando na página de propriedades do botão no editor da barra de ferramentas. Em seguida, crie uma função de manipulador para o comando (consulte Mapear Mensagens para Funções para obter mais informações).

Novas funções membro CToolBar funcionam com o recurso RT_TOOLBAR. LoadToolBar agora substitui o LoadBitmap para carregar o bitmap das imagens de botão da barra de ferramentas e o SetButtons para definir os estilos de botão e conectar botões com imagens bitmap.

Para obter detalhes sobre como usar o editor da barra de ferramentas, consulte Editor da Barra de Ferramentas.

Várias barras de ferramentas

O Assistente de Aplicativo fornece uma barra de ferramentas padrão. Se precisar de mais de uma barra de ferramentas em seu aplicativo, você poderá modelar seu código para barras de ferramentas adicionais com base no código gerado pelo assistente para a barra de ferramentas padrão.

Se você quiser exibir uma barra de ferramentas como resultado de um comando, precisará:

  • Criar um recurso de barra de ferramentas com o editor de barra de ferramentas e carregá-lo em OnCreate com a função membro LoadToolbar.

  • Inserir um novo objeto CToolBar na classe principal da janela de quadro.

  • Fazer as chamadas de função OnCreate apropriadas para encaixar ou flutuar a barra de ferramentas, definir seus estilos e assim por diante.

O que mais você deseja saber?

Confira também

Implementação da barra de ferramentas do MFC