Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4292 connectés 

 


Dernière réponse
Sujet : [MFC VC++ 6] bulles sur les trayicons
backdafuckup

Harkonnen a écrit :

Pardon d'avoir déterré ce topic de la corbeille, mais c'était juste pour dire que les bulles sur les TrayIcons ne sont gérés qu'a partir de Win 2000


Moi aussi je déterre ce topic....
Je pensais avoir eu déja la réponse...enfin, je sais pas trop ce que j'ai fait, encore une fois...
Harko> j'ai win 2000 justement, et ca marche impécable...
 
et, voici la solution :
 

Code :
  1. NOTIFYICONDATA nid;
  2. nid.cbSize = sizeof(NOTIFYICONDATA);
  3. nid.hWnd = GetSafeHwnd();
  4. nid.uID = 1;
  5. nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; //ici flag pour apparition de la bulle;
  6. strcpy(nid.szTip,"Surveillance du CCD..." );//bulle :)
  7. nid.uCallbackMessage = WM_TRAYMESSAGE;
  8. nid.hIcon = (HICON) AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  9. Shell_NotifyIcon(NIM_ADD,(_NOTIFYICONDATAA *)&nid);


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
backdafuckup

Harkonnen a écrit :

Pardon d'avoir déterré ce topic de la corbeille, mais c'était juste pour dire que les bulles sur les TrayIcons ne sont gérés qu'a partir de Win 2000


Moi aussi je déterre ce topic....
Je pensais avoir eu déja la réponse...enfin, je sais pas trop ce que j'ai fait, encore une fois...
Harko> j'ai win 2000 justement, et ca marche impécable...
 
et, voici la solution :
 

Code :
  1. NOTIFYICONDATA nid;
  2. nid.cbSize = sizeof(NOTIFYICONDATA);
  3. nid.hWnd = GetSafeHwnd();
  4. nid.uID = 1;
  5. nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; //ici flag pour apparition de la bulle;
  6. strcpy(nid.szTip,"Surveillance du CCD..." );//bulle :)
  7. nid.uCallbackMessage = WM_TRAYMESSAGE;
  8. nid.hIcon = (HICON) AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  9. Shell_NotifyIcon(NIM_ADD,(_NOTIFYICONDATAA *)&nid);

zion cfr le source du compo TrayIcon de la JVCL:
 
 

Citation :

procedure TJvTrayIcon.BalloonHint(Title, Value: string;
  BalloonType: TBalloonType; Delay: Integer);
//http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/Shell/reference/functions/shell_notifyicon.asp
begin
  if AcceptBalloons then
  begin
    FTime := Now;
    FTimeDelay := Delay div 1000;
    Fic.uFlags := NIF_INFO;
    with Fic do
      StrPLCopy(szInfoTitle, Title, SizeOf(szInfoTitle) - 1);
    with Fic do
      StrPLCopy(szInfo, Value, SizeOf(szInfo) - 1);
    Fic.uFlags := NIF_MESSAGE or NIF_ICON or NIF_INFO or NIF_TIP;
    Fic.uTimeOut := Delay;
    case BalloonType of
      btError: Fic.dwInfoFlags := NIIF_ERROR;
      btInfo: Fic.dwInfoFlags := NIIF_INFO;
      btNone: Fic.dwInfoFlags := NIIF_NONE;
      btWarning: Fic.dwInfoFlags := NIIF_WARNING;
    end;
    Shell_NotifyIcon(NIM_MODIFY,@Fic);
 
    if Assigned(FOnBalloonShow) then
      FOnBalloonShow(self);
  end;
end;

 
 
et ca marche  :D

Harkonnen Pardon d'avoir déterré ce topic de la corbeille, mais c'était juste pour dire que les bulles sur les TrayIcons ne sont gérés qu'a partir de Win 2000
backdafuckup 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 ? :jap:

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)