begin process at 2010 02 09 21:19:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Systray


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Systray

dimanche 25 janvier 2004 à 12:14:15 | Systray

LordBob

Membre Club
Bonjour a tous,
je sais qu'il existe des sources pour ajouter son application dans la systray, mais j'ai beau essayer de comprendre, je n'y arrive pas ... Alors je demande de l'aide...
En fait je voudrais ajouter mon application (boite de dialogue) dans la systray, et que l'on ne la voit pas dans la taskbar (je sais pas si c'est comme ca qu'elle s'appelle, enfin la barre à côté du bouton du menu demarrer)...
Voila aidez moi s'il vou plait...
Merci par avance...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
dimanche 25 janvier 2004 à 12:33:50 | Re : Systray

vecchio56

Administrateur CodeS-SourceS
En fait ce qu'on fait, c'est qu'on ajoute une icone dans la barre des taches, et puis tu caches ta fenête avec ShowWindow, mais il me semble qu'il y a plusieurs sources qui traitent de ca
dimanche 25 janvier 2004 à 14:52:21 | Re : Systray

LordBob

Membre Club
certes mais j'arrive pas a comprendre ou a adapté le code a mon programme... c'est pour ca que j'aimerais que l'on m'explique...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
dimanche 25 janvier 2004 à 18:21:22 | Re : Systray

LordBob

Membre Club
regarde, j'ai ecrit ce code et j'ai 6 erreurs tu pourrais pas m'aider???

[Code]#include <windows.h>
#include "resource.h"

#define WM_TRAY_ICONE (WM_USER+1)

HINSTANCE hInst;
BOOL AffichageMenu = FALSE;

BOOL AddIcone(HINSTANCE hInst, HWND hWnd, UINT id, LPTSTR IconName, char *infobulle)
{
BOOL res;

NOTIFYICONDATA trid;

trid.cbSize = sizeof(NOTIFYICONDATA);
trid.hWnd = hWnd;
trid.uID = id;
trid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
trid.uCallbackMessage = WM_TRAY_ICONE;
trid.hIcon = LoadIcon(hInst, IconName);

if(infobulle)
{
lstrcpyn(trid.szTip, infobulle, sizeof(trid.szTip));
}
else
{
trid.szTip[0] = '\0';

res = Shell_NotifyIcon(NIM_ADD, &trid);

return res;
}

BOOL RetIcone(HWND hwnd, UINT id)
{
BOOL res;

NOTIFYICONDATA trid;
trid.cbSize = sizeof(NOTIFYICONDATA);
trid.hWnd = hWnd;
trid.uID = id;

res = Shell_NotifyIcon(NIM_DELETE, &trid);

return res;
}

LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
AddIcone(hInst, hwnd, 2, MAKEINTRESOURCE(IDI_ICON), "Util MSN");

case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDCANCEL:
{
RetIcone(hwnd, 2);
EndDialog(hWnd, FALSE);
return TRUE;
}

case ID_TRAY_ITEM_1:
{
MessageBox(hWnd, "Util MSN par Jérémy Decool", "Information", MB_OK | MB_ICONINFORMATION);
}

case ID_TRAY_ITEM_2:
{
SendMessage(hWnd, WM_COMMAND, IDCANCEL, NULL);
}
}

case WM_TRAY_ICONE:
{
if(AffichageMenu || (lParam != WM_RBUTTONUP && lParam != WM_LBUTTONDBLCLK))
return FALSE;

HMENU menu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENUTRAY));

if(!menu)
{
return FALSE;
}

HMENU submenu = GetSubMenu(menu, 0);

if(!submenu)
{
return FALSE;
}

if(lParam == WM_RBUTTONUP)
{
AffichageMenu = TRUE;
POINT mouse;
GetCursorPos(&mouse);
SetMenuDefaultItem(submenu, ID_TRAY_ITEM_1, FALSE);
SetForegroundWindow(hWnd);
TrackPopupMenu(submenu, TPM_RETURNCMD || TPM_RIGHTALIGN, mouse.x, mouse.y, 0, hWnd, NULL);
DestroyMenu(subMenu);
DestroyMenu(menu);

return TRUE;
}
else
{
SendMessage(hWnd, WM_COMMAND, ID_TRAY_ITEM_1, NULL);

return TRUE;
}
}

default:
return FALSE;
}

return TRUE;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
hInst = hInstance;

DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, (DLGPROC)DlgProc);

return 0;
}

voila j'ai trois erreurs avec les handle, une erreur avec la fonction WinMain (def de fonctions locales non conforme) et 'submenu' non déclarer...

voila j'espere que quelqu'un pourrat m'aider...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
lundi 26 janvier 2004 à 17:17:32 | Re : Systray

vecchio56

Administrateur CodeS-SourceS
def de fonction locale: tu as oublié un }
pb de handle: tu as écrit hwnd au lieu de hWnd
submenu: tu as écrit subMenu au lieu de submenu

bref, des erreurs à la con, mais sinon t'as d'autres erreurs je crois, par exemple tu oublie des break après des case
lundi 26 janvier 2004 à 19:09:15 | Re : Systray

LordBob

Membre Club
bon je viens de réparer mes diverses erreurs, désoler de t'avoir déranger avec ca... mais je comprend pas ma faute dans la def de fonction, je ne comprend pas ma faute ... pourrais-tu m'aider svp???
Bob...

"La chance accorde ses faveur aux esprits avertis..."
lundi 26 janvier 2004 à 20:27:35 | Re : Systray

vecchio56

Administrateur CodeS-SourceS
C'est parce que tu as oublié un } comme je te l'ai dit. Par exemple ca peut etre un truc de ce genre

int f()
{
return 0;

void g()
{
}


le compilo croit que tu veux définir g dans f

lundi 26 janvier 2004 à 21:46:19 | Re : Systray

LordBob

Membre Club
oui ca je le sais, seulement je ne vois pas à qu'elle fonction il manque l'}'... tu peux m'aider stp...
merci par avance...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
lundi 26 janvier 2004 à 22:56:48 | Re : Systray

RTW


Regarde ta première fonction :
BOOL AddIcone(HINSTANCE hInst, HWND hWnd, UINT id, LPTSTR IconName, char *infobulle)
{
BOOL res;

NOTIFYICONDATA trid;

trid.cbSize = sizeof(NOTIFYICONDATA);
trid.hWnd = hWnd;
trid.uID = id;
trid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
trid.uCallbackMessage = WM_TRAY_ICONE;
trid.hIcon = LoadIcon(hInst, IconName);

if(infobulle)
{
lstrcpyn(trid.szTip, infobulle, sizeof(trid.szTip));
}
else
{
trid.szTip[0] = '\0';

res = Shell_NotifyIcon(NIM_ADD, &trid);

return res;
}


Ta boucle if...else ne se termine pas convenablement.
Ecrit plutôt ça :
if ( infobulle )
lstrcpyn(trid.szTip, infobulle, sizeof(trid.szTip));
else
trid.szTip[0] = '\0';


Et ça devrait aller mieux.

RTW, pour que l'entraide dure...
mardi 27 janvier 2004 à 13:20:04 | Re : Systray

LordBob

Membre Club
voici mon code:

#include <windows.h>
#include "resource.h"

#define WM_TRAY_ICONE (WM_USER+1)

HINSTANCE hInst;
BOOL AffichageMenu = FALSE;

BOOL AddIcone(HINSTANCE hInst, HWND hWnd, UINT id, LPTSTR IconName, char *infobulle)
{
BOOL res;

NOTIFYICONDATA trid;

trid.cbSize = sizeof(NOTIFYICONDATA);
trid.hWnd = hWnd;
trid.uID = id;
trid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
trid.uCallbackMessage = WM_TRAY_ICONE;
trid.hIcon = LoadIcon(hInst, IconName);

if (infobulle)
lstrcpyn(trid.szTip, infobulle, sizeof(trid.szTip));
else
trid.szTip[0] = '\0';

res = Shell_NotifyIcon(NIM_ADD, &trid);

return res;
}

BOOL RetIcone(HWND hWnd, UINT id)
{
BOOL res;

NOTIFYICONDATA trid;
trid.cbSize = sizeof(NOTIFYICONDATA);
trid.hWnd = hWnd;
trid.uID = id;

res = Shell_NotifyIcon(NIM_DELETE, &trid);

return res;
}

LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
AddIcone(hInst, hWnd, 2, MAKEINTRESOURCE(IDI_ICON), "Util MSN");

case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDCANCEL:
{
RetIcone(hWnd, 2);
EndDialog(hWnd, FALSE);

return TRUE;
}

case ID_TRAY_ITEM_1:
{
MessageBox(hWnd, "Util MSN par Jérémy Decool", "Information", MB_OK | MB_ICONINFORMATION);
}

case ID_TRAY_ITEM_2:
{
SendMessage(hWnd, WM_COMMAND, IDCANCEL, NULL);
}
}

case WM_TRAY_ICONE:
{
if(AffichageMenu || (lParam != WM_RBUTTONUP && lParam != WM_LBUTTONDBLCLK))
return FALSE;

HMENU menu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENUTRAY));

if(!menu)
return FALSE;

HMENU submenu = GetSubMenu(menu, 0);

if(!submenu)
return FALSE;

if(lParam == WM_RBUTTONUP)
{
AffichageMenu = TRUE;
POINT mouse;
GetCursorPos(&mouse);
SetMenuDefaultItem(submenu, ID_TRAY_ITEM_1, FALSE);
SetForegroundWindow(hWnd);
TrackPopupMenu(submenu, TPM_RETURNCMD || TPM_RIGHTALIGN, mouse.x, mouse.y, 0, hWnd, NULL);
DestroyMenu(submenu);
DestroyMenu(menu);

return TRUE;
}
else
{
SendMessage(hWnd, WM_COMMAND, ID_TRAY_ITEM_1, NULL);

return TRUE;
}
}

default:
return FALSE;
}

return TRUE;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
hInst = hInstance;

DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, (DLGPROC)DlgProc);

return 0;
}


mais j'ai toujours les deux erreurs...
Bob...

"La chance accorde ses faveur aux esprits avertis..."

1 2

Cette discussion est classée dans : application, ajouter, systray


Répondre à ce message

Sujets en rapport avec ce message

Ajouter un OCX dans une application [ par DeAtHCrAsH ] Salut,J'ai un ptit probleme sous VC++ 6.J'ai créer une application standard sans MFC ni quoi que se soit du genre. Tout a l'ancienne.Cependant, j'ai v une fenetre avant l'application [ par progrima ] Salut tout le monde!! j'ai réaliser une petite applaication mfc. ce que je veux ajouter, c'est avant le lancement de l'application, une petite fenetr Ajouter un timer à une application Turbo C++ [ par Ombitious_Developper ] salut:J'ai fait un jeu avec Turbo C++ 3.0 je souhaite savoir comment afficher le temps écoulé pendant ce jeu .et Merci. ajouter une extension à mon application [ par ryoussef1983 ] Bonjour,En fait je suis débutant en programmation sous visual c++j'ai crée une application (pour l'instant juste l'interface) et je voudrais ajouter u Ajouter une cdialogbar à partir d'une dll. [ par wogkiller ] Bonjour,Dans le cadre d'une projet je dois créer une application contenant un gestionnaire de plugin. Les plugin sont des dll contenant des classes do PageControl et Systray [ par PsYk0PaT ] Bonjour J'utilise Borland C++ 6 et j'ai de petit probleme avec un PageControl. Tout fonctionne à merveille jusqu'au moment ou je minimise mon applica [MFC] Ajouter une cdialogbar à partir d'une dll. [ par wogkiller ] Bonjour,Dans le cadre d'une projet je dois créer une application contenant un gestionnaire de plugin. Les plugin sont des dll contenant des classes do GetDC() retourn NULL [ par dumdum78 ] Bonjour,Je travail actuellement sur une application.Il y a un bug qui apparait de manière assez aléatoire (rarement mais non acceptable): lors de l'ut [MFC] Fermeture de l'application quand je tape sur entrer [ par aabhanane ] Bonjour à tous, J'ai fais une intérface graphique pour mon application en MFC sur visual studio 6.0. Mon intérface contient plusieurs contrôles: des b [MFC] - Automation Word : erreur au lancement de word [ par vieira_alice ] Bonjour, j'ai réalisé un premier programme pour tester l'automation word. là je suis entrain de réaliser son frère jumeau. quand je lance le 1e


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales