Alors yavait un mec ki demandait pour un NOTIFYICONDATA
Alors yavait un mec ki demandait pour un NOTIFYICONDATA - C++ - Programmation
Sujets relatifs:
Leave a Replay
Make sure you enter the(*)required information where indicate.HTML code is not allowed
Marsh Posté le 05-05-2003 à 11:41:10
Bon bah j'etais en train de lui repondre, et hop! le topic disparait. Donc je poste kan meme.
NOTIFYICONDATA nid;
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = GetSafeHwnd();
nid.uID = 1;
nid.uFlags = NIF_ICON | NIF_MESSAGE;
strcpy(nid.szTip,"Chargement en cours..." );
nid.uCallbackMessage = WM_TRAYMESSAGE;
nid.hIcon = (HICON) AfxGetApp()->LoadIcon(IDR_MAINFRAME);
Shell_NotifyIcon(NIM_ADD,(_NOTIFYICONDATAA *)&nid);
Voila la déclaration de mon trayicon (tout cela est executé lorsque la fenetre génère l'evenement "resize" ). Je pensais que pour faire cette bulle, il fallait initialiser szTip, mais apparement c'est pas ca...
Quelqu'un a une idée ?
Bon déjà tu nous as pas vraiment kel était ton problème.
Mais bon, on va commencer par rectifier quelques trucs et on verra.
Pour utiliser szTip il faut mettre le flag NIF_TIP. Et ensuite tu ne peux pas "strcpy" dans szTip ! Il n'est pas malloc-er. Il faut le faire pointer sur un autre buffer.
genre,
Bon ensuite : j espere que t as defini WM_TRAYMESSAGE comme etant WM_USER + X (1 ou 2 ou ce que tu veux)
Ensuite
[citation]
(tout cela est executé lorsque la fenetre génère l'evenement "resize" )
[/citation]
J'espère que je comprends mal. Si t'as mis ce code dans un WM_SIZE, c'est une grosse erreur. Ce code ne doit être exécuté qu'une seule ET unique fois. Genre WM_INITDIALOG ou WM_CREATE (selon ton appli).
Ensuite tu recevras les messages via ton WM_TRAYMESSAGE, avec wParam = 1 (ton nid.uId) et lParam = le message (WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_RBUTTONDOWN, etc...)
Ca peut tjs servir...