C/Visual C - Función API - SHAppBarMessage

 
Vista:

Función API - SHAppBarMessage

Publicado por Luis (17 intervenciones) el 31/07/2001 10:17:42
Saludos, soy un programador en Visual C++.

Necesitaría un ejemplo claro y conciso acerca del uso de las aplicaciones de barras de herramientas en el escritorio mediante la función API de Windows 'SHAppBarMessage'.

Si esto no fuera posible, tambien agradecería una explicación acerca de su uso más completa que la disposible en MSDN Library Visual Studio 6.0.

Gracias de antemano a tod@s ...
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

Función API - SHAppBarMessage

Publicado por Alejandro (913 intervenciones) el 04/10/2024 23:14:05
Saludos, Luis. A continuación, te proporcionaré un ejemplo claro y conciso para que puedas comprender su uso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <windows.h>
#include <shellapi.h>
 
// Función de callback para recibir mensajes de la barra de tareas
LRESULT CALLBACK AppBarCallback(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    // Manejar los mensajes de la barra de tareas aquí
    // ...
 
    return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
 
int main()
{
    // Registrar la ventana de la barra de herramientas
    APPBARDATA abd;
    abd.cbSize = sizeof(APPBARDATA);
    abd.hWnd = NULL;
    SHAppBarMessage(ABM_NEW, &abd);
 
    // Configurar la ventana de la barra de herramientas
    abd.cbSize = sizeof(APPBARDATA);
    abd.hWnd = hWnd; // hWnd es el identificador de la ventana principal de tu aplicación
    abd.uCallbackMessage = WM_APPBARNOTIFY;
    abd.uEdge = ABE_TOP; // Puedes ajustar esto según la ubicación deseada de la barra de herramientas
 
    // Registrar la ventana de la barra de herramientas con la barra de tareas
    SHAppBarMessage(ABM_SETPOS, &abd);
 
    // Obtener el tamaño de la barra de tareas
    SHAppBarMessage(ABM_GETTASKBARPOS, &abd);
 
    // Ajustar el tamaño y la posición de tu ventana principal según sea necesario
    // ...
 
    // Iniciar el bucle de mensajes de la aplicación
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    // Liberar la ventana de la barra de herramientas
    SHAppBarMessage(ABM_REMOVE, &abd);
 
    return 0;
}

En este ejemplo, se utiliza la función 'SHAppBarMessage' para registrar y configurar una ventana de barra de herramientas en el escritorio. La función de callback 'AppBarCallback' se utiliza para recibir y manejar los mensajes de la barra de tareas. Puedes agregar tu lógica personalizada dentro de esta función para responder a los eventos de la barra de herramientas.

Recuerda ajustar el identificador de la ventana principal 'hWnd' y la ubicación deseada de la barra de herramientas 'uEdge' según tus necesidades.

Si necesitas una explicación más completa sobre el uso de 'SHAppBarMessage', te recomendaría consultar la documentación oficial de Microsoft en la MSDN Library para obtener información detallada sobre los diferentes mensajes y opciones disponibles.

Espero que este ejemplo te sea útil. ¡Buena suerte con tu desarrollo en Visual C++!
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