IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Comment griser un �l�ment d'un menu ?...encore !


Sujet :

MFC

  1. #1
    liv
    liv est d�connect�
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Par d�faut Comment griser un �l�ment d'un menu ?...encore !
    Bonjour � tous,

    PS: Je travaille en Visual.NET MFC...sur une bo�te de dialogue

    J'ai consult� pas mal de sujet sur les menus sans toutefois trouver la r�ponse � mon probl�me qui finalement est tout simple.

    Voil�...je voudrais d�griser un �l�ment de menu !
    J'ai vu que farscape a pas mal r�pondu � ce sujet mais je n'ai pas trouv� ma r�ponse.

    Je sais activer ou d�sactiver mon �l�ment...�a il n'y a pas de probl�me.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    BEGIN_MESSAGE_MAP(CToolsDlg, CDialog) 
       //{{AFX_MSG_MAP(CToolsDlg) 
         ON_UPDATE_COMMAND_UI(ID_COURS_CREER, OnUpdateCoursCreer)
       //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    Ensuite je place ma fonction...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    void CToolsDlg::OnUpdateCoursCreer(CCmdUI *pCmdUI)
    {
    	pCmdUI->Enable(m_bActive);
    }
    En fonction de ma variable bool�enne m_bActive je peux activer/d�sactiver mon menu...si toutefois celui-ci n'est pas en mode gris�.
    Si mon �l�ment de menu est en mode gris� d�s le d�part (et donc inactif)...impossible de le d�griser.

    Quelqu'un a une id�e ??

    Merci.

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    si j'ai bien compris ton pb , je dirais que la variable m_bActive doit etre initialis�e avec la valeur de depart (griser ou non ) du menu .

  3. #3
    liv
    liv est d�connect�
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Par d�faut
    Salut � toi,

    En fait...ma variable au d�part est initialis�e � false.
    Lorsque ma variable est � false, mon �l�ment de menu doit �tre gris�...et inversement bien s�r.

    Au cours de mon programme, sur un appel de fonction par exemple...ma variable passe � true et mon menu doit �tre d�gris�.

    Tu vois?

  4. #4
    liv
    liv est d�connect�
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Par d�faut
    en fait j'ai remarqu� que si je grise mon �l�ment de menu d�s le d�part (par la fen�tre de propri�t� de Visual de mon �l�ment) je n'ai plus aucun contr�le dessus. Ce qui est normal en fait.

    Ca ne me convient pas de pouvoir activer ou d�sactiver mon �l�ment de menu...ce que j'aimerais faire c'est le griser ou le d�griser car cette propri�t� inclus l'activation/d�sactivation par d�finition.

    Je voudrais que cette activation/d�sactivation soit visuelle.

  5. #5
    liv
    liv est d�connect�
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Par d�faut
    Bon...j'ai trouv� la solution...c tout con !

    Avec ces lignes de code vous pouvez donner � tout moment n'importe quelle propri�t� � vos �l�ments de menu.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    //On récupère le menu de la dlg
    CMenu* mmenu = GetMenu();
    //On spécifie sur quel sous menu (n° de la colonne) on va définir les propriétés
    CMenu* submenu = mmenu->GetSubMenu(1);
    //On définit les propriétés du sous-menu en question
    submenu->EnableMenuItem(ID_COURS_CREER, MF_ENABLED);

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    re,
    Le syst�me par d�faut de mise a jour des menus par le syst�me ON_UPDATE_COMMAND_UI se fait au moment o� le menu est rafra�chi.
    Donc au moment o� l�utilisateur affiche le menu, le message ON_UPDATE_COMMAND_UI est envoy� pour r�cup�rer le statut de l�item menu en cours d�affichage.
    Conditionn� dans ton cas par une variable bool�enne.
    De ce fait je ne comprends pas trop ton probl�me.
    Voir aussi l�article dans la faq qui montre un autre mode de fonctionnement permettant de modifier les propri�t�s en dehors du m�canisme standard .
    http://c.developpez.com/faq/vc/?page...isableItemMenu

  7. #7
    liv
    liv est d�connect�
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 124
    Par d�faut
    L'article de la FAC explique ce que j'ai trouv� ailleurs...C exactement ce que je cherchais.

    Merci � toi.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Comment d�activer un �l�ment d'un menu?
    Par NABIL74 dans le forum D�buter
    R�ponses: 2
    Dernier message: 03/12/2008, 10h55
  2. R�ponses: 3
    Dernier message: 13/07/2007, 22h09
  3. Comment griser un menu
    Par estelle84 dans le forum wxWidgets
    R�ponses: 4
    Dernier message: 21/01/2007, 12h20
  4. Activer / griser les �l�ments d'un menu
    Par Silverstone dans le forum Visual C++
    R�ponses: 4
    Dernier message: 04/11/2006, 23h16
  5. Comment griser un �l�ment d'une ComboBox?
    Par kramer dans le forum C++Builder
    R�ponses: 3
    Dernier message: 10/04/2006, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo