Accueil > Forum > > > > Systray
Systray
dimanche 25 janvier 2004 à 12:14:15 |
Systray

LordBob
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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..."
|
|
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
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|