Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : systray [ Archives / API ] (leprov)

dimanche 25 juillet 2004 à 20:57:43 | systray

leprov

bonjour a tous.
apres avoir arpenté les sources, j'ai trouvé pas mal de sources pour mettre un prog ds la systray, mais jai pas mal de mal a capter comment ca fonctionne. je debute en prog windows, je suis juste etudiant en info, dc cest prog unix a fond, et surtt etude de lalgo et des fonctrions de bases du c++, et je me sentains de me mettre aux api ds mon coin, mais la la systray...je men sors pas avec touts ces sources, si qqun pouvait me donner qqs explications sur les objets qu'on utilise, les fonctions, les identifieurs, etc.....ca serait sympa.
merci d'avance

dimanche 25 juillet 2004 à 21:14:48 | Re : systray

BruNews

Administrateur CodeS-SourceS
Tu as regarde Shell_NotifyIcon() dans MSDN ?
Faut commencer par la, ensuite tu demandes ce qui te semble obscur, ok ?

ciao...
BruNews, Admin CS, MVP Visual C++

dimanche 25 juillet 2004 à 21:22:23 | Re : systray

leprov

bon alors pr ce squi me semble obscur....on ma passé ce bout de code.

/*~~~~~~~~~~~~~~~~~*/
NOTIFYICONDATA tnid;
/*~~~~~~~~~~~~~~~~~*/

tnid.cbSize = sizeof(NOTIFYICONDATA);
tnid.hWnd = this->Handle;
tnid.uID = ICON_ID; /* personal ID */
tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
tnid.uCallbackMessage = WM_ICON_MSG;
tnid.hIcon = Icon->Handle;
AnsiString s_tmpappname = "EVATIS-B\0" ;
memcpy(tnid.szTip,s_tmpappname.c_str()
,s_tmpappname.Length());
tnid.szTip[s_tmpappname.Length()] = '\0';
CanClose = false;
Shell_NotifyIcon(NIM_ADD, &tnid);


et pour la rouvrir en cas de click, yu intercepte le message utilise dans uCallbackMessage:

case WM_ICON_MSG:
switch(Message.WParam)
{
case ICON_ID:
if(Message.LParam != WM_LBUTTONDBLCLK) break;

/*~~~~~~~~~~~~~~~~~*/
NOTIFYICONDATA tnid;
/*~~~~~~~~~~~~~~~~~*/

tnid.cbSize = sizeof(NOTIFYICONDATA);
tnid.hWnd = this->Handle;
tnid.uID = ICON_ID; /* personal ID */
tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
tnid.uCallbackMessage = WM_ICON_MSG;
tnid.hIcon = Icon->Handle;
Shell_NotifyIcon(NIM_DELETE, &tnid);
Show();
ShowWindow(Handle, SW_SHOWMAXIMIZED);
SetForegroundWindow(Handle);
}


tnid cest quel type d'objet, ca contient quoi? c'est des NOTIFYICONDATA je suppose (enfin pas je suppose, cest clair lol), mais cest quoi exactement?ensuite les Handle, qqun peut m'expliquer un peu? et les flags? jai pas mal dautres bouts de codes avec des trucs obscur, mais la deja ca sera pas mal, ca me permettra surement d'avoir un bon point de depart.
merci d'avance, et merci a toi d'avoir deja repondu

dimanche 25 juillet 2004 à 21:37:49 | Re : systray

BruNews

Administrateur CodeS-SourceS
Bon si ça te derange pas, on va reprendre avec du simple, si on commence a melanger du stl et autres machins, on a pas fini.

NOTIFYICONDATA TrayIcon;
HICON icons[2];

LRESULT CALLBACK WindowProc(HWND hwnd, UINT mssg, WPARAM wParam, LPARAM lParam) {
switch(mssg) {
case WM_CREATE:
TrayIcon.cbSize = sizeof(NOTIFYICONDATA);
*((DWORD*) szmaxi) = 0x4E4F4E; // "NON"
TrayIcon.hWnd = hwnd;
TrayIcon.uID = 0;
TrayIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
TrayIcon.uCallbackMessage = WM_MOUSEMOVE;
TrayIcon.hIcon = icons[1];
strcpy(TrayIcon.szTip, szmaxi);
Shell_NotifyIcon(NIM_ADD, &TrayIcon);
........

va mieux ?

ciao...
BruNews, Admin CS, MVP Visual C++

dimanche 25 juillet 2004 à 21:43:19 | Re : systray

leprov

vi cest deja plus comprehensible, merci. quelques questions quand meme. ya quoi dans un NOTIFYICONDATA? ensuite ds la ligen suivante :
*((DWORD*) szmaxi) = 0x4E4F4E; // "NON"
cest koi un DWORD? et pk je met ce pointeur sur cette adresse?
enfin, quand jappelle la fonction, je lui donne quoi a bouffer?
merci

dimanche 25 juillet 2004 à 21:55:06 | Re : systray

BruNews

Administrateur CodeS-SourceS
NOTIFYICONDATA est une structure qu'on doit remplir et passer son adresse a la fonction API. goto MDNS pour details.

char szmaxi[4];
j'ai place "NON" dedans, ce sera le tooltip affiche quand on ballade la souris sur icone dans le systray.

ciao...
BruNews, Admin CS, MVP Visual C++

dimanche 25 juillet 2004 à 21:59:11 | Re : systray

leprov

merci beaucoup. ca m'eclaire pas mal
et la fonction, je lui donne quoi a bouffer a lappel? je lappelle ds mpon winmain (ou dans une fonction appelée par mon winmain), et je lui donne quoi dans les parametres?

dimanche 25 juillet 2004 à 22:06:06 | Re : systray

BruNews

Administrateur CodeS-SourceS
Oh j'ai pourtant mis ce qu'il faut, regarde au dessu c'est un winproc, il faut lui donner un HWND comme fenetre a notifier donc ne peut pas etre au debut dans WinMain.

ciao...
BruNews, Admin CS, MVP Visual C++

dimanche 25 juillet 2004 à 22:07:35 | Re : systray

BruNews

Administrateur CodeS-SourceS
Va prendre le tout, c'est dans ma source 'Limit IE...' ou un nom de ce genre, fichier LimitIE.cpp.

ciao...
BruNews, Admin CS, MVP Visual C++

dimanche 25 juillet 2004 à 22:11:53 | Re : systray

leprov

merci je vais aller voir la source, si jai des pb je reposterais. merci beaucoup.


1 2

Cette discussion est classé dans : prog, sources, ds, systray, mal


Répondre à ce message

Sujets en rapport avec ce message

Nv site sur la prog!! [ par yoman64 ] Salut je voulais vous avertir que un nouveau site sur la prog vien d'ouvrir:www.php-kode.fr.stSur ce site sa parle de VB ,de C++ et de php.Le principe comment utiliser getvolumeinformation [ par shinevilkyo ] tout d abort boujour ,je suis nouveau ds la prog sur windows et j aurais voulu faire un prog qui me permette de liste tout ce qui a ds un cd rom.mais mes questions sans réponses [ par leprov ] salut a tous.apres avoir posté ces differentes kestion et ne pas y avoir eu de reponses (maintenant elles sont a perpetes ds la liste des topics, dc j probleme systray [ par damien174 ] bonjour est ce ke k'elkun sais ds kel fichier .h se trouve cette fonction : GetSafeHwnd()je voulais ajouter un icone ds le systray mais c++ builder s' Processus a chaque ouverture de connexion [ par fmurgues ] Bonjour,   Voila je fais un prog (visual C++ en MFC) qui va deconnecter l'utilisateur au bout d'un certain temps. Je mets un compteur a jour toutes le Aide exercice C [ par lkaiman ] Bonjour a tousJ'espère que Nowël s'est bien passé pour tous le monde, et que bien sur le nouvel an sera encore meilleur_______________________________ Comment mettre une icone à un prog ? [ par KissyFroth ] bon je pense que tout est ds le titre : je voudrais simplement mettre une icone à une application : faut-il préciser cela dans les options de compilat A l'aide (Re prbl icone) [ par KissyFroth ] Bon ds mon precedent message, je demandais comment on mettait une icone a l'executable généré par le compilateur. j'ai eu une reponse qui a un peu tro boucle infinie, plantage du prog [ par windowsfashion ] bonjour Je suis debutant en c++  Quand je demande un nombre (avec cin) et que l'on met à la place des caracteres au lieu d'un nombre, ba sa me fait Utilisation d'un make file pour compiler et executer pls prog [ par ouafaa ] Bonjour a tout le monde Bonjour ,j'ai un prog Fichier1.cxx qui me genere un fichier texteet un autre pro


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,624 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.