WIN32 - MFC - VC6 - PLACE D'UNE APPLI : BARRE DES TACHES OU SYSTRAY (HEURE) ICON

mi_est Messages postés 1 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 22 février 2005 - 22 févr. 2005 à 12:35
cs_Zulark Messages postés 2 Date d'inscription lundi 24 novembre 2008 Statut Membre Dernière intervention 10 décembre 2008 - 10 déc. 2008 à 00:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29682-win32-mfc-vc6-place-d-une-appli-barre-des-taches-ou-systray-heure-icone-avec-menu-et-action

cs_Zulark Messages postés 2 Date d'inscription lundi 24 novembre 2008 Statut Membre Dernière intervention 10 décembre 2008
10 déc. 2008 à 00:21
ok merci. :)
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
7 déc. 2008 à 14:06
Bonjour,

effectivement, depuis visual 2003, le paramètre de sortie de la fonction OnNotifyIcon a été modifié.

il est passé de "void "
à "LRESULT "

il suffit de les remplacer et de simuler un retour dans l'appelant qui devient ainsi :

LRESULT CPlaceAppliDlg::OnNotifyIcon(WPARAM wParam, LPARAM lParam)
{
/// --------------------------------------------------------------------------------------------
/// ---------------- CPlaceAppliDlg::OnNotifyIcon(WPARAM wParam ,LPARAM lParam) ----------------
/// --------------------------------------------------------------------------------------------
/// ----- Objectif : notification sur l'icone de la systray
/// ----- PreCond : /
/// ----- PostCond : /
/// --------------------------------------------------------------------------------------------
/// ----- WPARAM wParam : param
/// ----- LPARAM lParam : param complémentaire
/// --------------------------------------------------------------------------------------------
m_pSysTray->OnNotifyIcon(wParam, lParam);
return 0;
}

une mise à jour portable sera prochainement publiée ici.

Magicalement
cs_Zulark Messages postés 2 Date d'inscription lundi 24 novembre 2008 Statut Membre Dernière intervention 10 décembre 2008
26 nov. 2008 à 10:27
Bonjours
j'ai essayer ce code mais il me met l'erreur :
error C2440: 'static_cast' : cannot convert from 'void (__thiscall CSauveMails2Dlg::* )(WPARAM,LPARAM)' to 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)'

sur la ligne :
ON_REGISTERED_MESSAGE(WM_B_NOTIFICATON_ICONE_SYSTRAY, OnNotifyIcon)

il me la met aussi dans ta source :c
je suis sous visual studio 2005.
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
22 oct. 2007 à 17:00
Bonjour,

Effectivement, je ne la trouve pas non plus dans la version en ligne des msdn.

En fait, dans l'exemple de ce code elle est construite sur l'exemple des OnNotify

CWnd::OnNotify

The framework calls this member function to inform the parent window of a control that an event has occurred in the control or that the control requires some kind of information.

virtual BOOL OnNotify(
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult
);

Dans notre exemple, dans la classe, voici sa description:

/// --------------------------------------------------------------------------------------
/// ---------------- BSystray::OnNotifyIcon(WPARAM wParam ,LPARAM lParam) ----------------
/// --------------------------------------------------------------------------------------
/// ----- Objectif : réponse sur action ou autre sur l'icone
/// ----- PreCond : /
/// ----- PostCond : /
/// ----- Etat : 2 (-1<0<1<2)
/// --------------------------------------------------------------------------------------
/// ----- WPARAM wParam : id de l'icone
/// ----- LPARAM lParam : paramètre complémentaire : action
/// --------------------------------------------------------------------------------------

lParam correspond aux évènements habituels :
WM_LBUTTONCLK
WM_LBUTTONDBLCLK
WM_RBUTTONDOWN
...

Bonne prog :)
unionx Messages postés 190 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 18 mars 2009
19 oct. 2007 à 12:08
bonjour
je veux savoir ou je vais trouver la fonction
::OnNotifyIcon(WPARAM wParam, LPARAM lParam)
j'ai bien chercher dans la partie ClassWizard et events mais je la trouve pas.

merci avance pour l'aide.
tularis Messages postés 21 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 12 juillet 2009
14 oct. 2006 à 14:03
dissoulé pour l'othographe ...
sinon je suis perfectioniste je ne pense que je pubirai quelque chose avant que cela soit proche de "ma perfection" et ce n'est pas sur que je l'ateigne un jour ...
De plus je ne pense pas avoir autant de passion que toi dans l'informatique ... j'ai vraiment eu du mal a comprendre ta facon de coder et ton organisation et des petite chose comme les commentaire de 10 ligne m'on vraiment troublé, alor que je trouve que plein de petit commentaire simple manque comme celle pour des variables
ou des dixaine de ligne de code comme celle ci "tnid.hWnd=m_hWnd;"
pourrai tu reelement comprendre ton prog dans 6 mois sans probleme ou meme le montrer à de tes amis programeur j'en doute ...
PS:(msdn represente "mes tutos" ...)
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
13 oct. 2006 à 10:49
Bonjour Tularis

Tout d'abord, merci pour ces commentaires.
Qui ont l'avantage d'être présent, mais méritent un droit de réponse

0> ce n'est pas le but de te dégoûter de la prog, dis ce que tu ne comprends pas.
1> oui je sors d'une école d'ingé en info
2> réorganiser ce code,
oui, pourquoi pas, propose...

"tu met tes fonction en début de prog ou dans un seul autre fichier que t'include"

C'est le cas : BSystray.cpp & BSystray.hpp qui contiennent la classe BSystray
décrite ici,
le reste n'est qu'un exemple d'application, généré par Visual, adapté succinctement ensuite
afin d'obtenir les fonctionnalités désirées.

3> concernant ces 'attaques personnelles, je pense savoir coder, même si j'apprend toujours.

4> pour les commentaires, ils sont générés automatiquement par un programme : MétaProg,
la 3e section de commentaire de fonction :
/// ----- Var Utilisées de la classe (5) : m_bPresent ,m_hIcon ,m_hWnd ,m_lpToolTip ,m_uIconID
/// ----- Var Internes à la fonction (3) : DestroyIcon ,res ,tnid
/// ----- Var Utilisées par adresse (1) : tnid
/// ----- Var In (4) : m_hIcon ,m_hWnd ,m_lpToolTip ,m_uIconID
/// ----- Var In Globales Constantes (6) : NIF_ICON ,NIF_MESSAGE ,NIF_TIP ,NIM_ADD ,NOTIFYICONDATA ,WM_B_NOTIFICATON_ICONE_SYSTRAY
/// ----- Var In-Out (1) : m_bPresent)

Cette section est totalement optionnelle, d'ailleurs, actuellement, je ne la mets plus dans les codes, (il est vrai qu'elle peut perturber ta lecture)
Je ne la fais maintenant apparaître que durant l'analyse & le développement,
puis la fait disparaître (en 1 clic) ensuite, grâce à MétaProg.

Concernant le reste des commentaires, je pense savoir faire, néanmoins suis ouvert à toute proposition d'amélioration;

En reprenant cette source, les détails ne sont quasi pas commentée, (il y a les MSDN pour ça, par exemple)
Seules les fonctions sont décrites: précond/postCond & variable in&out.

Ce qui est le plus important dans le but d'une réutilisation.

Par ailleurs, je respecte les principes de la POO, et encapsule le code Win32 et autre dans des classes qui ont une unité logique.

Donc selon moi, ce code est organisé.

Mais il est possible que tu ai en fait, ici fait le procès du code d'exemple qui est effectivement MFC et qui a été créé rapidement avec le Wizard de Visual dont tu n'as a priori pas l'habitude.

J'attends impatiemment que tu publies des choses afin de voir ce qui selon toi serait de la "bonne programmation".

Magicalement, et sans animosité aucune
Nono.

PS : pense à soigner ton orthographe
tularis Messages postés 21 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 12 juillet 2009
12 oct. 2006 à 12:42
bon beh jvien de trouver d'autre source, c'es sque je pensais tu sais pas coder et tu sais pas commenter c'est pas de la mechanceté, ... mais tu ferais bien de revoir ta façon de commenter et de coder, car si un jour quelqu'un veux reprendre ton prog, il va mettre autant de temps le reorganiser que toi a le coder
et si le mec est comme moi n'a pas toute les notion que tu possede il va se perdre dans ton prog, bref organise sil te plai ...
tularis Messages postés 21 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 12 juillet 2009
12 oct. 2006 à 12:25
si je pense aussi que tu devrai aprendre a reroganiser ton code, ... et puis ya des commentaire qui serve à rien ...
(cf:/// --------------------------------------------------------------
/// ---------------- BSystray::addIcone() -> bool ----------------
/// --------------------------------------------------------------
/// ----- Objectif : ajoute l'icone à la systray
/// ----- Auteur(s) : Bruno CELLE 19/02/05
/// ----- PreCond : /
/// ----- PostCond : /
/// ----- Etat : 2 (-1<0<1<2)
/// --------------------------------------------------------------
/// ----- retour (bool) : cf.objectif
/// --------------------------------------------------------------
/// ----- Var Utilisées de la classe (5) : m_bPresent ,m_hIcon ,m_hWnd ,m_lpToolTip ,m_uIconID
/// ----- Var Internes à la fonction (3) : DestroyIcon ,res ,tnid
/// ----- Var Utilisées par adresse (1) : tnid
/// ----- Var In (4) : m_hIcon ,m_hWnd ,m_lpToolTip ,m_uIconID
/// ----- Var In Globales Constantes (6) : NIF_ICON ,NIF_MESSAGE ,NIF_TIP ,NIM_ADD ,NOTIFYICONDATA ,WM_B_NOTIFICATON_ICONE_SYSTRAY
/// ----- Var In-Out (1) : m_bPresent)
tu met tes fonction en debut de prog ou dans un seul autre fichier que t'include , sois c'est incomprehensible pour tous sois je suis une bille sois on est tous des bille ...
jretourne a mes tutos ...
tularis Messages postés 21 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 12 juillet 2009
12 oct. 2006 à 12:12
merci nono , tu ma deg de la prog je voi ton prog rien que pour le comprendre sa me prendrai des jour et des plein de tuto a lire ... di moi au moin que tu sort d'une ecole d'ingé ou que t'es un otiste de la prog ...
Bref ca commence a me gaver la prog jai 5 project a faire pour la fin de lannee je crois que je vais rendre des ptite merde sous forme de console et puis changer de voix ...
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
26 mars 2006 à 21:31
cette source traite des endroits ou l'on peut faire apparaitre une application (en compilation utilistateur)
cs_krust Messages postés 140 Date d'inscription mercredi 3 juillet 2002 Statut Membre Dernière intervention 19 novembre 2006
26 mars 2006 à 18:36
Je vois pas l'intéret d'une hook du service table dans cette source...
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
20 mars 2006 à 14:26
très prochainement sur cette source :
intégration & execution d'un exe en mode noyeau à la fin de l'exe
(exe de BruNews) permettant de cacher le processus de la liste des processus actif.

++
B
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
6 avril 2005 à 08:37
Merci puppet

Pour répondre à ta question,
Les Bxxx sont un ensemble de fonctionnalités/classes usuelles que des amis et moi meme avons développées au cours du temps, j'en suis personnellement l'auteur de la majorité.

Le but étant à la base une mise en pratique des différents apprentissages, une totale maitrise des différents traitements et il a fréquemment été demandé de ne pas utilisé de bibliothèque externe. (TP, mini proj ou demandes d'entreprises)

Cet ensemble de fonctions usuelles a été utilisé pour beaucoup de projets et continue à évoluer...
Il facilite la programmation et est basé sur les principes de la POO.

Les Bxxx comportent principalement un ensemble de classes commençant par un B comme Bilbliothèque, d'ou leur nom.
Elles permettent d'utiliser des fonctionnalité sans se soucier de l'environnement de développement puisque sa majeur partie fonctionne sous unix, beos et windows.
Elles comportent également un ensemble de fonctionnalité graphique utilisant les mfc.

Tu peux, si tu le désires, en trouver une partie publiée au travers de ces pages.
et toute contribution et/ou amélioration y est la bienvenue.

Ces bibliothèques sont open source et libres (ou licence Card-Ware).
Il est cependant demandé de faire profiter des améliorations et correctifs les autres utilisateurs.
comme c'est le principe pour tout code libre.


Magicalement
Bruno.
cs_PupetMaster Messages postés 13 Date d'inscription samedi 5 octobre 2002 Statut Membre Dernière intervention 11 avril 2005
6 avril 2005 à 01:17
Tout est nickel ;)

Merci


PS: c'est quoi ces bibliothèque Bxxx ? Qu'est ce qu'elles font, qui les ont développées? etc
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
5 avril 2005 à 08:25
effectivt, la premiere version était sans utiliser les Bxxx
(un ensemble de Bibliothèque)

et lorsque j'ai fait l'update, je n'avais que changer les fichiers modifiés...

nota: tu aurai pu trouver les Bxxx sur mes autres sources

Je fais le correctif pour rétablir une version sans Bxx et reposte...

dslé
++
Nono
cs_PupetMaster Messages postés 13 Date d'inscription samedi 5 octobre 2002 Statut Membre Dernière intervention 11 avril 2005
3 avril 2005 à 23:18
salut,

Cela fait une bonne semaine que j'essaye de mettre mon application en systray mais faut croire que j'ai pas le niveau :D

Je voulais essayé inclure tes class a mon projet mais j'ai un problème ... il me manque apparement des class ...



Ca c'est lorsque j'essaye de compiler ta source sans aucune modification.

-------------------Configuration: placeAppli - Win32 Debug--------------------
Compiling resources...
Compiling...
StdAfx.cpp
Compiling...
BSystray.cpp
fatal error C1083: Cannot open source file: 'C:\Documents and Settings\David\Bureau\systrayt class\Bibli\Dlg\BSystray.cpp': No such file or directory
placeAppli.cpp
c:\documents and settings\david\bureau\systrayt class\placeappli\placeapplidlg.h(17) : fatal error C1083: Cannot open include file: '../Bibli/Dlg/BSystray.hpp': No such file or directory
placeAppliDlg.cpp
c:\documents and settings\david\bureau\systrayt class\placeappli\placeapplidlg.h(17) : fatal error C1083: Cannot open include file: '../Bibli/Dlg/BSystray.hpp': No such file or directory
BFichier.cpp
fatal error C1083: Cannot open source file: 'C:\Documents and Settings\David\Bureau\systrayt class\Bibli\BFichier.cpp': No such file or directory
BMsgBoxChoix.cpp
fatal error C1083: Cannot open source file: 'C:\Documents and Settings\David\Bureau\systrayt class\Bibli\Dlg\BMsgBoxChoix.cpp': No such file or directory
BString.cpp
fatal error C1083: Cannot open source file: 'C:\Documents and Settings\David\Bureau\systrayt class\Bibli\BString.cpp': No such file or directory
BVisuel.cpp
fatal error C1083: Cannot open source file: 'C:\Documents and Settings\David\Bureau\systrayt class\Bibli\BVisuel.cpp': No such file or directory
Globals.cpp
fatal error C1083: Cannot open source file: 'C:\Documents and Settings\David\Bureau\systrayt class\Bibli\Globals.cpp': No such file or directory
Generating Code...
Error executing cl.exe.
Creating browse info file...
BSCMAKE: error BK1506 : cannot open file '.\Debug\BSystray.sbr': No such file or directory
Error executing bscmake.exe.

placeAppli.exe - 9 error(s), 0 warning(s)


Vala en fait il manque des fichiers :s

Pourrais-tu m'aider?

Merci
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
14 mars 2005 à 08:57
merci pour ton com darkkinj

effectivement, jprozorback, utiliser les mfc permet vraiement de gagner du temps dans un contexte de rendement important...

Magicalement.
Bruno.
darkkinj Messages postés 18 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 12 mars 2005
13 mars 2005 à 17:52
Bravo pour cette source. Je cherchait justement depuis un bon moment un code pour expliquer comment faire ça en mfc.

C'est bien justement que quelqu'un les utilise aussi. Je sais que certains préfèrent la programmation directe de l'API mais je n'ai ni le temps de m'y mettre ni le courage, j'utilise les MFC juste pour construire les interfaces graphiques pour gagner du temps même si elle seront toujours moins belle que ce que certains sont capables de faire.

@+
darkkinj
jprozorback Messages postés 31 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 28 mars 2006
23 févr. 2005 à 15:47
je respecte la POO et le systeme de classes tout comme toi seulment je pense pas que gros projet rime avec pas avec MFC,je pense que beaucoup sont de mon avis. les MFC ne sont pas indispensable elle sont juste une simplification du win32.
le WIN32 permet un meilleur control de chaque composant mais plus long a coder.

c'est parcequ'il est plus long a coder qu'il est plus riche
et plus complet.

voila , sinon je respecte totalement ton projet c'est que ca fait plusieur fois que je regarde tes sources et ya tj des MFC.

je pense que les MFC ont fait leurs TMP. regarde du coté de MS la part qui leurs consacre. doit y avoir 15 à 20 page seulment.
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
23 févr. 2005 à 13:33
assez facilement supprimables

a toi de faire la translation et publie la en mettant un lien ici...

mais respecte la POO et le systeme des classes,
c'est indispensable pour les gros projets bien gérés

++
Nono
jprozorback Messages postés 31 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 28 mars 2006
23 févr. 2005 à 12:50
encore des MFC....
Rejoignez-nous