Partilhar via


Ferramentas definidas pelo usuário

MFC oferece suporte a ferramentas definidas pelo usuário.Uma ferramenta definida pelo usuário é um comando especial que executa um programa externo especificado pelo usuário.Você pode usar o processo de personalização para gerenciar ferramentas definidas pelo usuário.No entanto, você não pode usar esse processo se seu objeto de aplicativo não é derivado de Classe CWinAppEx.Para obter mais informações sobre personalização, consulte Personalização para MFC.

Se você ativou o suporte de ferramentas definidas pelo usuário, a caixa de diálogo personalização inclui automaticamente o Ferramentas guia.A ilustração a seguir mostra a Ferramentas página.

Guia de ferramentas de caixa de diálogo de personalização

Guia de ferramentas na caixa de diálogo de personalização

Habilitando definido pelo usuário ferramentas de suporte

Para habilitar ferramentas definidas pelo usuário em um aplicativo, chame CWinAppEx::EnableUserTools.Entretanto, você deve primeiro definir várias constantes em arquivos de recursos de seu aplicativo para usar como parâmetros para esta chamada.

No editor de recurso criar um comando fictício que usa uma identificação de comando apropriado.No exemplo a seguir, usamos ID_TOOLS_ENTRY como a ID de comando.Essa identificação de comando marca um local em um ou mais menus onde o framework irá inserir as ferramentas definidas pelo usuário.

Você deve definir reserve alguns IDs consecutivos na tabela de seqüência de caracteres para representar as ferramentas definidas pelo usuário.O número de seqüências de caracteres que você reserve é igual ao número máximo de ferramentas de usuário que os usuários podem definir.No exemplo a seguir, elas são nomeadas ID_USER_TOOL1 por ID_USER_TOOL10.

Você pode oferecer sugestões para os usuários para ajudar a selecionar os diretórios e argumentos para os programas externos que serão chamados como ferramentas.Para fazer isso, crie dois menus pop-up no editor de recursos.No exemplo a seguir estes são nomeados IDR_MENU_ARGS e IDR_MENU_DIRS.Para cada comando nesses menus, defina uma seqüência de caracteres em sua tabela de seqüência de caracteres do aplicativo.A identificação de recurso da cadeia de caracteres deve ser igual à ID de comando.

Você também pode criar uma classe derivada de Classe CUserTool para substituir a implementação padrão.Para fazer isso, passe as informações de tempo de execução para sua classe derivada como o quarto parâmetro CWinAppEx::EnableUserTools em vez de RUNTIME_CLASS (Classe CUserTool).

Após definir as constantes apropriadas, chame CWinAppEx::EnableUserTools para habilitar ferramentas definidas pelo usuário.

A chamada de método a seguir mostra como usar essas constantes:

    EnableUserTools(ID_TOOLS_ENTRY, ID_USER_TOOL1, ID_USER_TOOL10, RUNTIME_CLASS(CUserTool), IDR_MENU_ARGS, IDR_MENU_DIRS);

Neste exemplo, a guia Ferramentas será incluída na personalização caixa de diálogo.A estrutura substituirá qualquer comando que corresponde a ID de comando ID_TOOLS_ENTRY em qualquer menu com o conjunto de ferramentas de usuário definida atualmente sempre que um usuário abre um menu.As IDs de comando ID_USER_TOOL1 por ID_USER_TOOL10 são reservadas para uso de ferramentas definidas pelo usuário.A classe Classe CUserTool lida com chamadas para as ferramentas de usuário.Na guia ferramenta da personalização caixa de diálogo oferece botões à direita dos campos de entrada de argumento e diretório para acessar os menus IDR_MENU_ARGS e IDR_MENU_DIRS.Quando um usuário seleciona um comando de um desses menus, a estrutura acrescenta à caixa de texto apropriada a seqüência tem a identificação de recurso igual à ID de comando.

Cc137832.collapse_all(pt-br,VS.110).gifIncluindo ferramentas predefinidas

Se desejar predefinir algumas ferramentas na inicialização do aplicativo, você deve substituir o CFrameWnd::LoadFrame método da janela principal do aplicativo.Nesse método, você deve executar as etapas a seguir.

Para adicionar novas ferramentas no LoadFrame

  1. Obter um ponteiro para o Classe CUserToolsManager objeto chamando CWinAppEx::GetUserToolsManager.

  2. Para cada ferramenta que você deseja criar, chamar CUserToolsManager::CreateNewTool.Esse método retorna um ponteiro para um Classe CUserTool de objeto e adiciona a ferramenta de usuário recém-criado à coleção interna de ferramentas.Se você forneceu as informações de tempo de execução para uma classe derivada de Classe CUserTool como o quarto parâmetro de CWinAppEx::EnableUserTools, CUserToolsManager::CreateNewTool irá instanciar e retornar uma instância dessa classe em vez disso.

  3. Para cada ferramenta, defina seu rótulo de texto definindo CUserTool::m_strLabel e definir seu comando chamando CUserTool::SetCommand.A implementação padrão de Classe CUserTool recupera automaticamente ícones disponíveis no programa que é especificado na chamada para SetCommand.

Consulte também

Referência

Classe CUserTool

Classe CUserToolsManager

Classe CWinAppEx

Conceitos

Personalização para MFC