C/Visual C - Recurso de table de métodos abreviados.

 
Vista:

Recurso de table de métodos abreviados.

Publicado por CybertowerS (10 intervenciones) el 01/10/2002 19:28:15
Hola grupo,

tengo creado un recurso de tabla de métodos abreviados, pero no se como hecharlo a andar, es decir, que un diálogo pueda usar las teclas abreviadas que he especificado en este recurso de tabla de métodos abreviados.

Espero que me puedan ayudar.
Gracias.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Activar métodos abreviados en un diálogo usando recursos de tabla de métodos abreviados

Publicado por Alejandro (913 intervenciones) el 24/03/2025 21:15:44
Para utilizar una tabla de métodos abreviados en un diálogo en Visual C++, sigue estos pasos:

1. Crear el recurso de tabla de métodos abreviados: Asegúrate de que ya tienes un recurso de tabla de métodos abreviados (por ejemplo, `IDD_SHORTCUTS` en tu archivo de recursos). Este recurso debe definir los métodos abreviados que deseas utilizar.

2. Cargar la tabla de métodos abreviados: En el constructor de tu diálogo o en el método `OnInitDialog`, carga la tabla de métodos abreviados utilizando `LoadAccelerators`. Esto permite que el diálogo reconozca los métodos abreviados definidos.

1
HACCEL hAccel = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ACCELERATOR));

3. Procesar los métodos abreviados: En el bucle de mensajes de tu diálogo, asegúrate de que los métodos abreviados se procesen correctamente. Puedes hacer esto en el método `PreTranslateMessage` de tu clase de diálogo.

1
2
3
4
5
6
7
BOOL CYourDialog::PreTranslateMessage(MSG* pMsg)
{
    if (hAccel && TranslateAccelerator(m_hWnd, hAccel, pMsg))
        return TRUE;
 
    return CDialogEx::PreTranslateMessage(pMsg);
}

4. Definir los comandos: Asegúrate de que los comandos asociados a los métodos abreviados estén definidos en tu archivo de comandos (por ejemplo, en `resource.h`) y que estén implementados en tu clase de diálogo. Por ejemplo:

1
2
3
4
void CYourDialog::OnYourShortcutCommand()
{
    // Lógica para el comando asociado al método abreviado
}

5. Asociar los comandos a los métodos abreviados: En el archivo de implementación de tu diálogo, asegúrate de que los comandos estén mapeados correctamente en el `BEGIN_MESSAGE_MAP`.

1
2
3
BEGIN_MESSAGE_MAP(CYourDialog, CDialogEx)
    ON_COMMAND(ID_YOUR_SHORTCUT_COMMAND, &CYourDialog::OnYourShortcutCommand)
END_MESSAGE_MAP()

Siguiendo estos pasos, deberías poder activar y utilizar los métodos abreviados definidos en tu recurso de tabla de métodos abreviados dentro de tu diálogo. ¡Buena suerte, CybertowerS!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar