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

 


Dernière réponse
Sujet : Visual C et Icone de la barre des tache
Harkonnen il y a différentes étapes pour faire ceci, c'est assez chaud et rigoureux :
 
1 - créer un message personnalisé : définir un message perso au début de ton prog, du style
 
#define WM_TRAYMESSAGE (WM_USER + 101)
 
2 - lors de l'appel à Shell_NotifyIcon, initialiser le champ uCallbackMessage de la structure NOTIFYICONDATA avec ce message :
 
m_ni.uCallbackMessage = WM_TRAYMESSAGE;
 
m_ni est une structure NOTIFYICONDATA
 
3 - créer un gestionnaire d'évènements pour ce message, par le ClassWizard de VC++. par exemple, pour faire apparaitre un menu sous la souris :
 
LRESULT CTestDlg::OnTrayMessage(WPARAM wParam, LPARAM lParam)
{
 // Bouton droit -> on affiche le menu
 // Double clic -> on affiche la fenêtre
 
 CMenu menu;
 CPoint pt;
 
 if (lParam == WM_RBUTTONDOWN) { // bouton droit
  menu.LoadMenu(IDR_MENU1);
  CMenu *m = menu.GetSubMenu(0);
  GetCursorPos(&pt);
  m->SetDefaultItem(0, TRUE);
 
  ::SetForegroundWindow(m_hWnd);
  m->TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,  
   pt.x,
   pt.y,
   this);
  ::PostMessage(m_hWnd, WM_NULL, 0, 0);
 
 } else if (lParam == WM_LBUTTONDBLCLK) { // double clic
   
  ShowWindow(SW_SHOWNORMAL);
  SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
  SetActiveWindow();
 
 }
 
 return 0;
}
 
Absolument rien de compliqué dans cette fonction, voir le MSDN si tu ne comprends pas certains trucs.
 
Cette fonction doit toujours retourner LRESULT, car il s'agit d'un callback
 
Pour une explication plus détaillée, cf MSDN
 
A+

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
Harkonnen il y a différentes étapes pour faire ceci, c'est assez chaud et rigoureux :
 
1 - créer un message personnalisé : définir un message perso au début de ton prog, du style
 
#define WM_TRAYMESSAGE (WM_USER + 101)
 
2 - lors de l'appel à Shell_NotifyIcon, initialiser le champ uCallbackMessage de la structure NOTIFYICONDATA avec ce message :
 
m_ni.uCallbackMessage = WM_TRAYMESSAGE;
 
m_ni est une structure NOTIFYICONDATA
 
3 - créer un gestionnaire d'évènements pour ce message, par le ClassWizard de VC++. par exemple, pour faire apparaitre un menu sous la souris :
 
LRESULT CTestDlg::OnTrayMessage(WPARAM wParam, LPARAM lParam)
{
 // Bouton droit -> on affiche le menu
 // Double clic -> on affiche la fenêtre
 
 CMenu menu;
 CPoint pt;
 
 if (lParam == WM_RBUTTONDOWN) { // bouton droit
  menu.LoadMenu(IDR_MENU1);
  CMenu *m = menu.GetSubMenu(0);
  GetCursorPos(&pt);
  m->SetDefaultItem(0, TRUE);
 
  ::SetForegroundWindow(m_hWnd);
  m->TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,  
   pt.x,
   pt.y,
   this);
  ::PostMessage(m_hWnd, WM_NULL, 0, 0);
 
 } else if (lParam == WM_LBUTTONDBLCLK) { // double clic
   
  ShowWindow(SW_SHOWNORMAL);
  SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
  SetActiveWindow();
 
 }
 
 return 0;
}
 
Absolument rien de compliqué dans cette fonction, voir le MSDN si tu ne comprends pas certains trucs.
 
Cette fonction doit toujours retourner LRESULT, car il s'agit d'un callback
 
Pour une explication plus détaillée, cf MSDN
 
A+
bilgetz_42 J'ai toujours 1 probleme !!!!
J'arrive a avoir l'icone mais je ne comprend pas comment le rendre reactif au click de souris
bilgetz_42

chrisbk a écrit a écrit :

regarde dans la msdn au rayon " Shell_NotifyIcon "  




merci :)

chrisbk regarde dans la msdn au rayon " Shell_NotifyIcon "
bilgetz_42 On fait comment pour mettre 1 icone sur la barre des taches(a droite) et qu'il soit reactif au click de souris ???

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