Me gustaría agregar un elemento de menú a mi menú principal y luego llenarlo con elementos en tiempo de ejecución. ¿Cómo haría esto? Y además de agregar elementos, ¿cómo podría tener una entrada de mapa de mensajes para ellos ya que no conozco la identificación?Menú dinámico usando mfc
9
A
Respuesta
15
se puede crear un objeto CMenu
dinámicamente como esto:
CMenu *menu = new CMenu;
menu->CreatePopupMenu();
// Add items to the menu
menu->AppendMenu(MF_STRING, menuItemID, "Text");
...
A continuación, agregue este sub-menú a su menú principal:
wnd->GetMenu()->AppendMenu(MF_POPUP, (UINT_PTR)menu->m_hMenu, "Menu Name");
En cuanto al mapa de mensajes, suponiendo que todo el elemento de menú Los ID están dentro de un cierto rango, puede usar ON_COMMAND_RANGE
para asignar el rango completo a una sola función. Esta función recibirá la ID como un parámetro, y dentro de la función, puede realizar diferentes operaciones basadas en la ID.
8
define the menu's using #define
#define ID_SHOW 2002
#define ID_HIDE 2004
//create a menu object for main menu
CMenu *menu = new CMenu();
menu->CreateMenu();
//another menu object for submenu
CMenu *subMenu = new CMenu();
subMenu->CreatePopupMenu();
subMenu->AppendMenu(MF_STRING, ID_HIDE, _T("four"));
subMenu->AppendMenu(MF_STRING, ID_SHOW, _T("three"));
//append submenu to menu
menu->AppendMenu(MF_POPUP|MF_STRING, (UINT)subMenu->m_hMenu, _T("Advanced"));
SetMenu(menu);
0
CMenu menuPopup;
menuPopup.LoadMenu(IDR_CNTXT_PLAN);
subMenu.CreatePopupMenu();
subMenu.AppendMenu(MF_STRING, MENU1,"Menu1");
subMenu.AppendMenu(MF_STRING, MENU2,"Menu2");
CMenu* pMenu = menuPopup.GetSubMenu(0);
pMenu->InsertMenu(0,MF_BYPOSITION|MF_POPUP,(UINT)subMenu.m_hMenu,"Layers");
menuPopup.GetSubMenu(0)->InsertMenu(1,MF_BYPOSITION|MF_SEPARATOR,0,"");
menuPopup.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
Cuestiones relacionadas
- 1. Eliminación de menú en MFC
- 2. Ocultar un elemento de menú en MFC
- 3. menú dinámico C++ win32 - qué elemento del menú se seleccionó
- 4. Enlace estático o dinámico de CRT, MFC, ATL, etc.
- 5. Sistema de menú dinámico Asp.net MVC
- 6. Cómo cargar imágenes .png, .jpeg usando MFC?
- 7. Interfaz de usuario de menú dinámico MVVM vinculante con ViewModel
- 8. Extensión de Chrome: menú dinámico con clic derecho
- 9. Control dinámico de elementos de acción/menú en ActionBar
- 10. ¿Puedo serializar el mapa de STL en MFC usando CArchive?
- 11. ¿MFC está en desuso?
- 12. Rellenar desplegable en MFC
- 13. ¿Cómo puedo agregar un menú de cinta a una aplicación MFC existente?
- 14. ¿MinGW es compatible con MFC?
- 15. onchange - el menú desplegable seleccionado usando jquery
- 16. Menú de navegación usando plantillas de Django
- 17. Agregar el menú desplegable usando d3.js
- 18. MFC: función GetCurrentDirectory
- 19. Alternativa a MFC
- 20. Recursos/enlaces de MFC
- 21. libraby estática en MFC
- 22. Dimensionando una Ventana MFC
- 23. MFC CMenu tooltip no se muestra
- 24. cómo convertir Diccionario <dinámico, dinámico> a Diccionario <cadena, cadena> usando Colllection.ToDictionary()
- 25. Creando una GUI con MFC
- 26. Convertir MFC CString a entero
- 27. ¿Cómo matar un hilo MFC?
- 28. Combo-Box Control MFC no muestra la lista completa de elementos cuando hago clic en el menú desplegable
- 29. Menú de navegación horizontal dinámico CSS para rellenar el ancho específico (comportamiento de la tabla)
- 30. ¿Agregar botón con menú dinámico a la línea de edición de emacs?