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 :

Menu dynamique MFC


Sujet :

MFC

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 62
    Points
    62
    Par défaut Menu dynamique MFC
    Bon j'ai testé le menu dynamique pour mon appli MFC.
    par la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	CMenu NewMenu;
    	NewMenu.LoadMenu (menu);
    	AfxGetMainWnd()->SetMenu( &NewMenu );
    	AfxGetMainWnd()->DrawMenuBar();
    	NewMenu.Detach();
    Ok ça marche... mais...
    c'est une application MDI et j'ai plus les icônes pour minimiser, maximiser ou fermer un des documents ouverts (à droite de ma fenêtre) en faisant ça... ce qui s'avère contraignant...

    si quelqu'un à une soluce

    A oui.. de plus j'ai un autre souci quand je passe d'un document à un autre.. ça me remet le menu par défaut...

    Merci

  2. #2
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 62
    Points
    62
    Par défaut
    En faite d'apres ce que j'ai compris des tutos.

    la je change le Menu de la MainFrame mais pas celui des Doc. MDI c'est pour ce là que le menu de base (IDR_MAINFRM) réapparait..

    en fait dans mon appli j'ai 4 boutons sur une ToolBar qui change le Menu (donc le Menu de la MainFrm) et donc quand j'ai plusieurs document d'ouvert... et que je change le menu ça merde un peu au niveau de l'affichage car j'ai plus les boutons de fermeture, minimisation, maximisation.

    Donc comment faire ??
    Comment modifier proprement le Menu des docs MDI avec un Menu placé en Resource ?

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 62
    Points
    62
    Par défaut
    Bon j'arrive à modifier le menu de mainframe et les menu de chaque Document de mon application MDI.

    par contre quand je modifie le menu alors que j'ai un document ouvert de façon maximisé dans mon appli...

    je perd toujours l'icone a gauche du menu et les trois icones de fermeture, minimisation, et cascade (en gros comme quand il n'y a pas de doc ouvert ou si en cascade).

    c'est un bug MFC ou je fais quelque chose qui va pas.... ??

    je fais juste ceci a chaque fois que je clique sur un des bonton de ma Toolbar qui modifie mon Menu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // pour le doc MDI courant
    pDoc->m_hMenu= ::LoadMenu (AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_MENU2));
    // pour la MainFrm
    CMenu NewMenu.LoadMenu (IDR_MENU2);
    AfxGetMainWnd()->SetMenu( &NewMenu );
    AfxGetMainWnd()->DrawMenuBar();
    NewMenu.Detach();

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 62
    Points
    62
    Par défaut
    J'ai résolu mon problème...
    merci a ceux qui m'ont transmis deux trois pistes.

    j'ai surchargé la fonction ChangeMenu de la classe CDoc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    void CAppDoc::ChangeMenu(int rc)
    {
    	int menu;
    	switch (rc)
    	{
    		case 1 :
    			menu = IDR_DRAW;
    			break;
    		case 2 :
    			menu = IDR_DRAW3D;
    			break;
    		.......
    	}
    	mode_light_doc = rc;
     
    	CMenu *pMenu = CMenu::FromHandle(m_hMenu);
     
    	pMenu->DestroyMenu();
     
    	m_hMenu = ::LoadMenu(
    	   AfxGetResourceHandle(), MAKEINTRESOURCE(menu));
     
    	((CFrameWnd*)AfxGetMainWnd())->OnUpdateFrameMenu(NULL);
    	AfxGetMainWnd()->DrawMenuBar();
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MFC] Menu dynamique
    Par barthelv dans le forum MFC
    Réponses: 7
    Dernier message: 31/05/2005, 10h44
  2. [Free Pascal] Intégrer des valeurs dans un menu dynamique
    Par boullery dans le forum Free Pascal
    Réponses: 16
    Dernier message: 30/03/2005, 17h04
  3. Créer un sous-menu dynamiquement
    Par PurL dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/09/2004, 10h31
  4. [JSP]menu dynamique en jsp
    Par laouedjahmed dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 22/03/2004, 10h50
  5. Menu dynamique sous Flash MX
    Par dens63 dans le forum Flash
    Réponses: 7
    Dernier message: 29/10/2003, 15h46

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