Herramientas definido por el usuario

MFC admite las herramientas definido por el usuario.Una herramienta definido por el usuario es un comando especial que ejecuta un programa externo, definido por el usuario.Puede utilizar el proceso de personalización para administrar las herramientas definido por el usuario.Sin embargo, no puede utilizar este proceso si el objeto application no es derivado de CWinAppEx (Clase).Para obtener más información sobre la personalización, vea Personalización de MFC.

Si se compatibilidad definido por el usuario habilitado de herramientas, el cuadro de diálogo personalización automáticamente incluye la ficha de Herramientas .La ilustración siguiente se muestra la página de Herramientas .

Pestaña herramientas de cuadro de diálogo personalización

Ficha Herramientas en cuadro de diálogo de personalización

Habilitar compatibilidad definido por el usuario de las herramientas

Para habilitar las herramientas definido por el usuario en una aplicación, llame a CWinAppEx::EnableUserTools.Sin embargo, primero debe definir varias constantes en archivos de recursos de la aplicación para utilizar como parámetros para esta llamada.

En el editor de recursos cree un comando ficticio que utiliza un identificador de comando apropiadaEn el ejemplo siguiente, se usa ID_TOOLS_ENTRYcomo el identificador de comandoEste identificador de comando marca una ubicación en uno o más menús donde el marco insertará herramientas definido por el usuario.

Debe incluir algunos id. a un lado consecutivos en la tabla de cadenas para representar las herramientas definido por el usuario.El número de cadenas que a un lado incluya es igual al número máximo de herramientas del usuario que los usuarios pueden definir.En el ejemplo siguiente, éstas se denominan ID_USER_TOOL1 con ID_USER_TOOL10.

Puede proporcionar sugerencias a los usuarios como ayuda para seleccionar directorios y los argumentos para programas externos que se llamará como herramientas.Para ello, cree dos menús emergentes en el editor de recursos.En el ejemplo siguiente se llama IDR_MENU_ARGS y IDR_MENU_DIRS.Para cada comando en los menús, defina una cadena en la tabla de cadenas de la aplicación.El Id. de recurso de cadena debe ser igual al identificador de comando

También puede crear una clase derivada de CUserTool (Clase) para reemplazar la implementación predeterminada.Para ello, pase la información en tiempo de ejecución para la clase derivada como el cuarto parámetro en CWinAppEx::EnableUserTools, en lugar de RUNTIME_CLASS (CUserTool (Clase)).

Después de definir las constantes adecuadas, llamada CWinAppEx::EnableUserTools para habilitar las herramientas definido por el usuario.

La llamada siguiente muestra cómo usar estas constantes:

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

En este ejemplo, la ficha de herramientas se incluirá en el cuadro de diálogo de Personalización .El marco reemplazará cualquier comando que coincide con el identificador ID_TOOLS_ENTRY de comando en cualquier menú con el conjunto de herramientas definido actualmente de usuario siempre que abra un usuario ese menú.Los id. ID_USER_TOOL1 de comando con ID_USER_TOOL10 se reservan para el uso de las herramientas definido por el usuario.La clase CUserTool (Clase) controla llamadas a las herramientas de usuario.La ficha del cuadro de diálogo de Personalización proporciona botones a la derecha de los campos de argumento y la entrada en la guía para tener acceso a los menús IDR_MENU_ARGS y IDR_MENU_DIRS.que Cuando un usuario selecciona un comando desde uno de los menús, el marco de trabajo anexa al cuadro de texto adecuado la cadena que tiene el Id. de recurso igual al identificador de comando

Cc137832.collapse_all(es-es,VS.110).gifIncluidas las herramientas predefinidas

Si desea predefinir algunas herramientas en el inicio de la aplicación, debe reemplazar el método de CFrameWnd::LoadFrame de la ventana principal de la aplicación.En ese método, debe realizar los pasos siguientes.

Para agregar nuevas herramientas en LoadFrame

  1. Obtenga un puntero al objeto de CUserToolsManager (Clase) llamando a CWinAppEx::GetUserToolsManager.

  2. Para cada herramienta que desea crear, llamada CUserToolsManager::CreateNewTool.Este método devuelve un puntero a un objeto de CUserTool (Clase) y agrega la herramienta creada recientemente de usuario a la colección interna de herramientas.Si se proporcionó información en tiempo de ejecución para una clase derivada de CUserTool (Clase) como el cuarto parámetro de CWinAppEx::EnableUserTools, CUserToolsManager::CreateNewTool creará instancias y devolverá una instancia de esa clase.

  3. Para cada herramienta, establezca su etiqueta de texto estableciendo CUserTool::m_strLabel y establezca su comando llamando a CUserTool::SetCommand.La implementación predeterminada de CUserTool (Clase) recupera automáticamente iconos disponibles del programa que se especifica en la llamada a SetCommand.

Vea también

Referencia

CUserTool (Clase)

CUserToolsManager (Clase)

CWinAppEx (Clase)

Conceptos

Personalización de MFC