Tôi muốn thêm một mục menu vào menu chính của tôi và sau đó điền nó vào các mục trong thời gian chạy. Làm thế nào tôi sẽ làm điều này? Và bên cạnh việc thêm các mục như thế nào tôi sẽ có một mục nhập bản đồ thông báo cho họ vì tôi không biết id?Menu động sử dụng mfc
9
A
Trả lời
15
Bạn có thể tạo một đối tượng CMenu
động như thế này:
CMenu *menu = new CMenu;
menu->CreatePopupMenu();
// Add items to the menu
menu->AppendMenu(MF_STRING, menuItemID, "Text");
...
Sau đó thêm này sub-menu vào menu chính của bạn:
wnd->GetMenu()->AppendMenu(MF_POPUP, (UINT_PTR)menu->m_hMenu, "Menu Name");
Đối với các bản đồ thông điệp, giả sử tất cả các mục trình đơn của bạn ID nằm trong một phạm vi nhất định, bạn có thể sử dụng ON_COMMAND_RANGE
để ánh xạ toàn bộ dải ô thành một hàm duy nhất. Hàm này sẽ nhận được ID làm tham số và trong hàm, bạn có thể thực hiện các thao tác khác nhau dựa trên 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);
Các vấn đề liên quan
- 1. Ẩn mục menu trong MFC
- 2. Sử dụng dịch vụ MFC trong Windows?
- 3. Làm cách nào để thêm menu băng vào ứng dụng MFC hiện có?
- 4. Sử dụng jQuery-menu-aim
- 5. Sử dụng menu ngữ cảnh TEdit cho TRichEdit
- 6. Mã menu tùy chọn sử dụng lại
- 7. Python Right Click Menu Sử dụng PyGTK
- 8. Thêm hộp Giảm thiểu vào menu hệ thống Bảng Thuộc tính của MFC
- 9. Tự động thêm menuitem vào menu mà không đóng menu
- 10. Hoạt động mới - Menu mới
- 11. Populate Drop Down trong MFC
- 12. Lấy tên mục từ danh sách ứng dụng .NET bằng cách sử dụng winapi hoặc mfc
- 13. Cách thay thế cho MFC
- 14. Tạo GUI với MFC
- 15. Ẩn Thanh Menu Eclipse (tự động ẩn)
- 16. Menu điều hướng bằng cách sử dụng các mẫu Django
- 17. lọc dữ liệu bằng cách sử dụng menu thả xuống?
- 18. Thêm menu thả xuống bằng cách sử dụng d3.js
- 19. Piecewise chuyển đổi một ứng dụng MFC sang Unicode/MBCS
- 20. Cách tạo menu tùy chọn động?
- 21. Tích hợp Qt vào ứng dụng MFC cũ
- 22. Truyền dữ liệu giữa ứng dụng C++ (MFC) và C#
- 23. Trong MFC CArray, lý do nào để sử dụng kiểu mẫu mặc định khác nhau?
- 24. Cách phát hiện "Sử dụng MFC" trong bộ xử lý trước
- 25. Những thứ như trang trí "afx_msg" vẫn được sử dụng bởi VS/MFC?
- 26. Làm cách nào để sử dụng macro TRACE trong các dự án không phải MFC?
- 27. Sizing một cửa sổ MFC
- 28. Nhận chiều rộng văn bản trong MFC
- 29. Tài nguyên/liên kết MFC
- 30. Tạo menu tùy chọn khả dụng cho tất cả Hoạt động trong một ứng dụng