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

  FORUM HardWare.fr
  Programmation
  C++

  [C++/MFC] Problème avec une barre de menu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++/MFC] Problème avec une barre de menu

n°196838
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:14:38  profilanswer
 

J'ai un problème dans une application MFC lors de la mise à jour d'un menu :
 
c'est une application en SDI et voici la fonction MAJMenu() que j'appelle dés que je veux mettre à jour ma barre de menu (pour griser certaines parties, etc) :
 

Code :
  1. void CMainFrame::MAJMenu()
  2. {
  3. CMenu* cMenu = GetMenu();
  4. if((theApp.m_pProjet->GetUrlFtp()).IsEmpty()) {
  5.  // On grise le menu FTP transfert
  6.  cMenu->EnableMenuItem(ID_TRANSFERT_LANCER, MF_GRAYED);
  7. }
  8. else {
  9.  // On ne le grise plus
  10.  cMenu->EnableMenuItem(ID_TRANSFERT_LANCER, MF_ENABLED);
  11. }
  12. }


J'ai vérifié avec le débugger, on passe bien au bon endroit mais le menu refuse de se griser ???
J'ai essayé en combinant le flag avec MF_BYCOMMAND et ça marche pas mieux. En revanche je peux changer le libellé du menu sinon  (commande ModifyMenu()) mais impossible de le griser même avec cette fonction.
 
Une idée ?


Message édité par Zeux le 19-08-2002 à 11:39:07
mood
Publicité
Posté le 19-08-2002 à 11:14:38  profilanswer
 

n°196843
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:16:45  profilanswer
 

La fonction EnableMenuItem() me retourne 0 ce qui signifie qu'elle a bien réussi à s'effectuer. Je viens aussi d'essayer d'appeler

Code :
  1. CWnd::DrawMenuBar()

juste aprés, pas mieux.


Message édité par Zeux le 19-08-2002 à 11:16:58
n°196847
El_gringo
Posté le 19-08-2002 à 11:21:25  profilanswer
 

Visual C++, c pas un langage, le langage, c'est C++
Visual C++, c'est l'IDE. Rien à voir.
 
ensuite, lis mieux la doc, nottament :

These values can be combined by using the bitwise OR operator.


 
d'où à la place de ce que t'as mis:

Code :
  1. if((theApp.m_pProjet->GetUrlFtp()).IsEmpty()) {
  2. // On grise le menu FTP transfert  
  3. cMenu->EnableMenuItem(ID_TRANSFERT_LANCER, MF_BYCOMMAND|MF_GRAYED);
  4. }
  5. else {
  6. // On ne le grise plus  
  7. cMenu->EnableMenuItem(ID_TRANSFERT_LANCER, MF_BYCOMMAND|MF_ENABLED);
  8. }


Qui devrait vachemebt mieux marcher !

n°196849
El_gringo
Posté le 19-08-2002 à 11:22:45  profilanswer
 

ha non, dsl, ça changera rien normalement : "MF_BYCOMMAND" est celui par défaut.
Je vois pas trop alors.

n°196850
El_gringo
Posté le 19-08-2002 à 11:24:16  profilanswer
 

zeux a écrit a écrit :

La fonction EnableMenuItem() me retourne 0 ce qui signifie qu'elle a bien réussi à s'effectuer. Je viens aussi d'essayer d'appeler

Code :
  1. CWnd::DrawMenuBar()

juste aprés, pas mieux.




 
0, t'as regardé ds la doc ce que ça veut dire ?
ça correspond à la valeur de quoi ? MF_DISABLED, MF_ENABLED, ou MF_GRAYED ?

n°196855
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:25:43  profilanswer
 

El_Gringo a écrit a écrit :

Visual C++, c pas un langage, le langage, c'est C++
Visual C++, c'est l'IDE. Rien à voir.
 
ensuite, lis mieux la doc, nottament :

These values can be combined by using the bitwise OR operator.


 
Qui devrait vachemebt mieux marcher !




Je vois pas où j'ai écris que VISUAL C++ était un langage mais enfin bon si tu dis que je l'ai marqué quelque part :sarcastic:.  
 
Relis mon post j'ai déjà essayé MF_BYCOMMAND.

n°196856
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:26:22  profilanswer
 

El_Gringo a écrit a écrit :

 
 
0, t'as regardé ds la doc ce que ça veut dire ?
ça correspond à la valeur de quoi ? MF_DISABLED, MF_ENABLED, ou MF_GRAYED ?



Ca correspond à MF_ENABLED ce qui est logique d'ailleurs.

n°196862
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:28:04  profilanswer
 

El_Gringo a écrit a écrit :

ensuite, lis mieux la doc, nottament :

These values can be combined by using the bitwise OR operator.

Qui devrait vachemebt mieux marcher !




J'ai lu la doc et relu avant de poster je suis pas complétement idiot.

n°196870
El_gringo
Posté le 19-08-2002 à 11:31:39  profilanswer
 

zeux a écrit a écrit :

 
Je vois pas où j'ai écris que VISUAL C++ était un langage mais enfin bon si tu dis que je l'ai marqué quelque part :sarcastic:.  




 
Le titre de ton topic [Visual C++] l'induit...

n°196871
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:32:20  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Le titre de ton topic [Visual C++] l'induit...




Non absolument pas, ça induit que ca a un rapport avec les MFC. Tu sais ce que c'est les MFC ?

mood
Publicité
Posté le 19-08-2002 à 11:32:20  profilanswer
 

n°196872
El_gringo
Posté le 19-08-2002 à 11:33:11  profilanswer
 

zeux a écrit a écrit :

 
Relis mon post j'ai déjà essayé MF_BYCOMMAND.




 
J'trouve plus clair de spécifier ds tous les cas si tu est en MF_BYCOMMAND ou en MF_BYOPSITION.
T'as déja essayé d'ailleurs par position !?

n°196873
El_gringo
Posté le 19-08-2002 à 11:35:11  profilanswer
 

zeux a écrit a écrit :

 
Non absolument pas, ça induit que ca a un rapport avec les MFC. Tu sais ce que c'est les MFC ?




 
Tu peux utiliser Visual C++ et te passer totalement des MFC. Heureusement d'ailleurs.
Mets plutot [C++/MFC] alors...
Et reste Zen surtout...

n°196877
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:37:49  profilanswer
 

El_Gringo a écrit a écrit :

 
 
J'trouve plus clair de spécifier ds tous les cas si tu est en MF_BYCOMMAND ou en MF_BYOPSITION.
T'as déja essayé d'ailleurs par position !?




Oui déjà essayé marche pas de toutes façons pas intéressant dans mon cas je veux pas être obligé de gérer les positions des menus parce qu'aprés je serais obligé de me retaper tous les index dés que je rajouterai un menu -> pas intérressant dans ce cas là.
 
En revanche tout de suite aprés ma modif avec enablemenuitem je retrouve bien MF_GRAYED quand j'interroge l'état du menu avec getmenustate.

n°196878
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:38:46  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Tu peux utiliser Visual C++ et te passer totalement des MFC. Heureusement d'ailleurs.
Mets plutot [C++/MFC] alors...
Et reste Zen surtout...




Sorry mais je me suis senti agressé sur ton premier message, 12 ans que je fais de la prog je connais la diff entre C++ et un IDE merci.
 
Je change le titre du topic. :hello:

n°196879
El_gringo
Posté le 19-08-2002 à 11:39:56  profilanswer
 

zeux a écrit a écrit :

 
Oui déjà essayé marche pas de toutes façons pas intéressant dans mon cas je veux pas être obligé de gérer les positions des menus parce qu'aprés je serais obligé de me retaper tous les index dés que je rajouterai un menu -> pas intérressant dans ce cas là.
 
En revanche tout de suite aprés ma modif avec enablemenuitem je retrouve bien MF_GRAYED quand j'interroge l'état du menu avec getmenustate.




 
Ouais, ms pas pour conserver cette façon de faire. Moi qd g un pb sur une fonction, j'essaye toujours de l'utiliser de toutes la manières possibles, même les + tordues desfois. ça me permet souvent d'identifier le pb.

n°196880
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:40:28  profilanswer
 

Bon ben va falloir que je pioche l'info ailleurs on dirait :(  
 
Sérieux personne n'a eu ce problème déjà ?


---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
n°196881
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:41:02  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Ouais, ms pas pour conserver cette façon de faire. Moi qd g un pb sur une fonction, j'essaye toujours de l'utiliser de toutes la manières possibles, même les + tordues desfois. ça me permet souvent d'identifier le pb.




Oui moi aussi c pour ça que je le répète j'ai déjà essayé avec MF_BYPOSITION.


---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
n°196885
El_gringo
Posté le 19-08-2002 à 11:41:42  profilanswer
 

zeux a écrit a écrit :

 
Sorry mais je me suis senti agressé sur ton premier message, 12 ans que je fais de la prog je connais la diff entre C++ et un IDE merci.
 
Je change le titre du topic. :hello:  




 
12 ans de prog !? Mais justement, tu deviens peut être un peu gâteux, non !? :D
(j'vais me prendre des baffes moi !:D)

n°196887
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:42:51  profilanswer
 

El_Gringo a écrit a écrit :

 
 
12 ans de prog !? Mais justement, tu deviens peut être un peu gâteux, non !? :D
(j'vais me prendre des baffes moi !:D)




Probablement j'ai commencé à 11 ans (en fait mon premier prog à 7 ans mais c'était tellement simple que je compte pas ce que j'ai fait en BASIC de 7 à 11 ans).


---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
n°196889
El_gringo
Posté le 19-08-2002 à 11:44:39  profilanswer
 

Et t'as essayé de mettre MF_DISABLED à la place de MF_GRAYED ?

n°196894
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:47:49  profilanswer
 

El_Gringo a écrit a écrit :

Et t'as essayé de mettre MF_DISABLED à la place de MF_GRAYED ?




Oui ça donne rien.


---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
n°196899
El_gringo
Posté le 19-08-2002 à 11:51:31  profilanswer
 

zeux a écrit a écrit :

 
Oui ça donne rien.




 
Alors, si t SUR que ID_TRANSFERT_LANCER est bien l'ID de l'item que tu veux griser (j'imagine que tu l'as déja vérifié une 15aine de fois, j'connais ça !), j'ai plus d'idée.
Tout ce que je peux te dire, c que j'utilise cette fonction de cette manière, et ça se passe très bien !
Bonne chance... :hello:

n°196901
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 11:55:42  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Alors, si t SUR que ID_TRANSFERT_LANCER est bien l'ID de l'item que tu veux griser (j'imagine que tu l'as déja vérifié une 15aine de fois, j'connais ça !), j'ai plus d'idée.
Tout ce que je peux te dire, c que j'utilise cette fonction de cette manière, et ça se passe très bien !
Bonne chance... :hello:  




C'est bien le bon ID ça c clair d'ailleurs sinon la fonction me retournerait -1 et ca marcherait pas position.
 
C bizarre je trouve aussi  :hello:


---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
n°196907
El_gringo
Posté le 19-08-2002 à 11:59:16  profilanswer
 

Ha, essaye qd même d'appliquer un UpdateWindow à ton CWnd qui contient le menu, après avoir essayé de griser.

n°196918
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 12:19:51  profilanswer
 

El_Gringo a écrit a écrit :

Ha, essaye qd même d'appliquer un UpdateWindow à ton CWnd qui contient le menu, après avoir essayé de griser.




Marche po.


---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
n°196939
Zeux
Mac user, comme Bayrou :o
Posté le 19-08-2002 à 12:45:29  profilanswer
 
n°196975
try58
Posté le 19-08-2002 à 13:19:43  profilanswer
 

tu utilises quoi? VC6 ou VC7?


---------------
LOVE & PEACE !!! [:kirvel]
n°197862
Zeux
Mac user, comme Bayrou :o
Posté le 20-08-2002 à 11:49:50  profilanswer
 

try58 a écrit a écrit :

tu utilises quoi? VC6 ou VC7?



6


---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
n°197891
try58
Posté le 20-08-2002 à 12:13:25  profilanswer
 

Je suppose que tu as cree ton menu a partir de l'editeur de ressource. Donc regarde au niveau des options qui sont cochees pour ton menu, peut etre que c'est ca qui fait merder.


---------------
LOVE & PEACE !!! [:kirvel]
n°198024
Zeux
Mac user, comme Bayrou :o
Posté le 20-08-2002 à 15:22:04  profilanswer
 

try58 a écrit a écrit :

Je suppose que tu as cree ton menu a partir de l'editeur de ressource. Donc regarde au niveau des options qui sont cochees pour ton menu, peut etre que c'est ca qui fait merder.




Oui je l'ai créé à partir de l'éditeur de ressources et non j'ai déjà vérifié moult fois ça vient pas de là.
 
Merci kd même  :hello:


---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++/MFC] Problème avec une barre de menu

 

Sujets relatifs
[php] problemeProblème avec freesql. Aide svp
problème avec une map en HTMLprobleme apparament tout con xml/fonction
comment faire une menu sur le coté et afficher le reste sur la droite?probleme avec w32dasm
Script pour cacher "Overture de la page bla bla" dans la barre[java] probleme de Date
Problème avec un applet et internet explorerPositionnement de menu déroulant
Plus de sujets relatifs à : [C++/MFC] Problème avec une barre de menu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR