NotifyIcon

15/04/2004 - 00:52 por Scafe | Informe spam
Hola, estoy agregando un NotifyIcon a mi app, pero no
funciona como esperaria. declaro un NOTIFYICONDATA en mi
calse de dialogo, y una funcion

afx_msg LRESULT OnNotifyMe( WPARAM wparam, LPARAM lparam);

luego en el constructor del dialogo seteo los miembros de
NOTIFYICONDATA y pongo un uCallbackMessage=MY_NOTIFY;
y llamo a Shell_NotifyIcon(NIM_ADD, &myNotify);

por ultimo agregué estos mensajes al mapa:
ON_WM_CONTEXTMENU()
ON_MESSAGE(MY_NOTIFY, OnNotifyMe)

intente controlar el notify pero cuando paso el puntero
del mouse sobre el mismo se elimina del tray, sin enviar
ningun evento.

desde ya agradezco cualquier ayuda al respecto.

Preguntas similare

Leer las respuestas

#1 Cholo Lennon
15/04/2004 - 02:08 | Informe spam
¿Cargaste bien la variable NOTIFYICONDATA? Deberías mostrar código del
agregado/eliminación del ícono para poder ayudarte.

ON_WM_CONTEXTMENU() no te va a servir. Debes manejar la carga/muestra del
menú manualmente en OnNotifyMe. El parámetro lparam te indica el evento de
ratón sobre el ícono (WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_MOUSEMOVE, etc). En
tanto wparam te indica el id del icono sobre el que se ha hecho clic.

Saludos
Cholo Lennon
Salta, ARG
Respuesta Responder a este mensaje
#2 Scafe
15/04/2004 - 02:21 | Informe spam
ok, este es el codigo que inicializa
NOTIFYICONDATA
myNotify.hWnd=this->m_hWnd;
myNotify.uID=ID_ICONMAIL;
myNotify.uFlags=NIF_ICON;
myNotify.hIcon=m_hIcon;
strcpy(myNotify.szTip,"Outlook Worker");
myNotify.cbSize=sizeof(NOTIFYICONDATA);
myNotify.uCallbackMessage=MY_NOTIFY;
Shell_NotifyIcon(NIM_ADD, &myNotify);

gracias
¿Cargaste bien la variable NOTIFYICONDATA? Deberías


mostrar código del
agregado/eliminación del ícono para poder ayudarte.

ON_WM_CONTEXTMENU() no te va a servir. Debes manejar la


carga/muestra del
menú manualmente en OnNotifyMe. El parámetro lparam te


indica el evento de
ratón sobre el ícono (WM_LBUTTONDOWN, WM_RBUTTONDOWN,


WM_MOUSEMOVE, etc). En
tanto wparam te indica el id del icono sobre el que se ha


hecho clic.

Saludos
Cholo Lennon
Salta, ARG


.

Respuesta Responder a este mensaje
#3 Hernán
15/04/2004 - 03:02 | Informe spam
"Scafe" escribía,

myNotify.uFlags=NIF_ICON;



myNotify.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;

esto informa a la función cuáles campos del vector contienen datos
válidos. Deberías leer la doc...

Hernán (28)
Quilmes (ar)
Respuesta Responder a este mensaje
#4 Scafe
15/04/2004 - 03:25 | Informe spam
Gracias! efectivamente lei la documentacion, pero
evidentemente no la lei con la debida atencion. por otra
parte lo acabo de probar y todavia asi sigue teniendo el
mismo comportamiento, o sea ninguno.

"Scafe" escribía,

myNotify.uFlags=NIF_ICON;



myNotify.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;

esto informa a la función cuáles campos del vector


contienen datos
válidos. Deberías leer la doc...

Hernán (28)
Quilmes (ar)
.

Respuesta Responder a este mensaje
#5 Hernán
15/04/2004 - 03:47 | Informe spam
"Scafe" escribía,

Gracias! efectivamente lei la documentacion, pero
evidentemente no la lei con la debida atencion. por otra
parte lo acabo de probar y todavia asi sigue teniendo el
mismo comportamiento, o sea ninguno.




cuando vos paseás el ratón sobre tu ícono en el systray, el chabón
callbackea un MY_NOTIFY al handler de tu ventana. El lParam del mensaje,
contiene información sobre el código del "evento". No creo que el lParam
sea nunca igual a WM_CONTEXTMENU, pero puedes trackear el menú cuando
lParam sea igual a WM_RBUTTONDOWN... suele ser lo clásico.

Hernán (28)
Quilmes (ar)
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida