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

  FORUM HardWare.fr
  Programmation
  C++

  Ajout d'une barre de menu dans une boite de dialogue

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ajout d'une barre de menu dans une boite de dialogue

n°1125980
_TomTom_
Posté le 21-06-2005 à 10:52:36  profilanswer
 

Bonjour,
ds mon projet MFC, j'utilise une boite de dialogue dans lakelle j'aimerai ajouter une barre de menus.Celle-ci est crée et s'apelle IDR_MAINFRAME.
Ma boite de dialogue s'apelle IDD_PMW_DIALOG.
 
J'aimerai savoir kel ligne de code dois-je insérer afin que la barre de menus apparaisse dans la dialog box.
 
Merci

mood
Publicité
Posté le 21-06-2005 à 10:52:36  profilanswer
 

n°1126024
xtremdev
Je choisi la formule offensive
Posté le 21-06-2005 à 11:10:26  profilanswer
 

_TomTom_ a écrit :

Bonjour,
ds mon projet MFC, j'utilise une boite de dialogue dans lakelle j'aimerai ajouter une barre de menus.Celle-ci est crée et s'apelle IDR_MAINFRAME.
Ma boite de dialogue s'apelle IDD_PMW_DIALOG.
 
J'aimerai savoir kel ligne de code dois-je insérer afin que la barre de menus apparaisse dans la dialog box.
 
Merci


 
Dans le .h de la boite de dialogue :
 

Code :
  1. CMenu m_hMenu;
  2. void UpdateMenu (CMenu* pMenu);
  3. afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);


 
Dans le .cpp de la boite de dialogue :
 
dans la message map :  
 

Code :
  1. ON_WM_INITMENUPOPUP()


 
dans la fonction OnInitDialog()  

Code :
  1. m_Menu.LoadMenu(IDR_MENU);
  2. SetMenu(&m_Menu);


 
et enfin les 2 fonctions déclarée dans le header :  

Code :
  1. void MyDialog::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
  2. {
  3. UpdateMenu (pPopupMenu);
  4. }
  5. void MyDialog::UpdateMenu (CMenu* pMenu)
  6. {
  7. CCmdUI cmdUI;
  8. if (NULL != pMenu)
  9. {
  10.  for (UINT n = 0; n < pMenu->GetMenuItemCount(); ++n)
  11.  {
  12.   CMenu* pSubMenu = pMenu->GetSubMenu(n);
  13.   if (NULL != pSubMenu)
  14.   {
  15.    UpdateMenu (pSubMenu);  // recursive call
  16.   }
  17.   else
  18.   {
  19.    cmdUI.m_nIndex = n;
  20.    cmdUI.m_nID = pMenu->GetMenuItemID(n);
  21.    cmdUI.m_pMenu = pMenu;
  22.    // Need to set this value otherwise you will assert when
  23.    // you have an empty recent file list.
  24.    cmdUI.m_nIndexMax = pMenu->GetMenuItemCount();
  25.    cmdUI.DoUpdate(this, FALSE);
  26.   }
  27.  }
  28. }
  29. }

n°1126277
_TomTom_
Posté le 21-06-2005 à 14:03:20  profilanswer
 

Merci, ca marche nikel!

n°1131363
slash33
Posté le 26-06-2005 à 17:23:24  profilanswer
 

Si tu utilises Visual tu as juste à sélectionner l'ID du menu dans les propriétés du dialogue (éditeur de ressources)


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

  Ajout d'une barre de menu dans une boite de dialogue

 

Sujets relatifs
Menu déroulant CSS avec une image sur 1er boutonVisual .NET, MFC, boîte de dialogue et Rich Edit
Nb de caractères max de la barre d'adresseProblème chargement menu en .swf sur site en php
Ajout de caractères[RESOLU] Personnaliser la barre de menu Access
Cadre obligatoire ?[PHP] Ajout panier écrase le précédent
Plus de sujets relatifs à : Ajout d'une barre de menu dans une boite de dialogue


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