[C con Clase] El ícono en el system tray no es el que defino
D1e6o!
diegogeid en gmail.com
Vie Mar 2 06:43:45 CET 2007
GRACIAS DE NUEVO! Je Muchísimas Gracias!!!!!!... No estoy seguro de cual es
el problema..! Había de todo un poco.. je. Por un lado creo que tus
sugerencias de reemplazar la instrucción LoadIcon ayudaron, ya que si es de
otro tamaño tendría problemas..! Por otro, limpié la memoria antes de usar
tnid con ZeroMemory(&tnid,sizeof(NOTIFYICONDATA));
No se si es necesario... pero por las dudas de que contenga basura... y
finalmente limpié los temporales manualmente ya que me estaban generando
problemas. Ahora antes de cambiar algunas cosas debo limpiar sino me trae
problemas, por ejemplo no me cambia los íconos (uso la versión 4.9.9.2 de
dev c++)
Y finalmente gracias por los nombres de las constantes... ya que si cambio
la resolución... me generaría problemas..! Así que Muchísimas gracias por
todo!!!!!!! Realmete lo valoro.. Un saludo!! (Y lo de cambiar un ícono...
también me es de mucha utilidad, pero en este momento estaba con lo otro.
Mañana me pongo a ver eso..!)
SaLuDoS!
El día 2/03/07, Steven Davidson <steven en conclase.net> escribió:
>
> Hola Diego,
>
> El pasado 2007-03-01 20:40:07, D1e6o! escribió:
>
> D> Hola amigos.. bueno... Perdón por molestar de nuevo... pero hay veces
> que no
> D> se donde buscar... Y en este caso em estoy volviendo loco... Se trata
> de
> D> íconos:
> D> Probando con íconos intenté llevarlo al system tray, pero cuando lo
> hago no
> D> tengo el ícono que quiero sino el ícono small que tiene la aplicación:
> D> en winmain...
> D> wincl.hIcon = LoadIcon(GetModuleHandle(NULL),
> D> MAKEINTRESOURCE(ID_APICONO));
> D> wincl.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL),
> D> MAKEINTRESOURCE(ID_SMICONO), IMAGE_ICON, 16, 16, 0);
> D> y en alguna parte del winmain:
> D> MyTaskBarAddIcon (hwnd, ID_ICON, LoadIcon(GetModuleHandle(NULL),
> D> MAKEINTRESOURCE(ID_ICONO)), "Prueba de íconos");
>
> Sugiero usar 'LoadImage()' en lugar de la función obsoleta 'LoadIcon()'.
> Además, 'LoadIcon()' carga iconos de tamaño 'SM_CXICON' x 'SM_CYICON'. Como
> seguramente tienes iconos de diferentes tamaños, necesitarás ser explícito.
> En tu caso, escribirías,
>
> wincl.hIcon = (HICON) LoadImage( hThisInstance,
> MAKEINTRESOURCE(ID_APICONO),
> IMAGE_ICON, 32,32, 0);
> wincl.hIconSm = (HICON) LoadImage( hThisInstance,
> MAKEINTRESOURCE(ID_SMICONO),
> IMAGE_ICON, 16,16, 0);
> ...
> MyTaskBarAddIcon( hwnd, ID_ICON,
> (HICON) LoadImage( hThisInstance,
> MAKEINTRESOURCE(ID_ICONO),
> IMAGE_ICON, 16,16, 0),
> "Prueba de iconos");
>
> [CORTE]
>
> D> Y si fuera por el tamaño, también probé:
> D> MyTaskBarAddIcon (hwnd, ID_ICON,(HICON)LoadImage(GetModuleHandle(NULL),
> D> MAKEINTRESOURCE(ID_SMICONO), IMAGE_ICON, 16, 16, 0) , "Prueba de
> íconos");
> D> Y sigue siendo el mismo ícono el que aparece... No entiendo por que
> sucede
>
> Prueba indicando explícitamente todos los tamaños de los iconos. Esto es
> lo que me pasó en mis pruebas.
>
> D> esto... Y por otro lado...
> D> Que es ID_ICON? Que valores puede tomar?
>
> En tu ejemplo, 'ID_ICON' es asignado al miembro 'tnid.uID'. Este valor es
> un número entero que representa el icono y su funcionalidad en el área de
> estado de la barra de tareas - comúnmente llamada "bandeja del sistema".
>
> El intérprete (o "shell") usa los miembros 'hWnd' y 'uID' para asociar e
> identificar la ventana y sus iconos para luego enviar los mensajes del ratón
> a tal ventana para tal icono identificado. Como es posible que una misma
> ventana puede crear varios iconos en este área, el intérprete necesita
> alguna forma de distinguirlos.
>
> El valor de 'uID' puede ser cualquiera que diseñes.
>
> D> Como puedo hacer para cambiar de íconos (ovbiamente una ves que
> funcione
> D> esto)
>
> Si te refieres a los iconos de la ventana, envía el mensaje 'WM_SETICON' a
> sí misma. La sintaxis es:
>
> wParam = ICON_BIG ó ICON_SMALL
> lParam = hIcono
>
> Por ejemplo,
>
> HICON hNuevoIcono;
> ...
> SendMessage( hwnd, WM_SETICON, ICON_BIG, (LPARAM) hNuevoIcono );
>
> D> Gracias a todos! (y muchas gracias steven que me sacás muchas dudas a
> D> disrio!!!) Saludos!
>
> Hago lo que puedo.
>
>
> Espero que lo anterior te ayude.
>
> Steven
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070302/67ccdc3a/attachment.html>
Más información sobre la lista de distribución Cconclase