Создайте графический ресурс меню, используя редактор ресурсов Visual C ++. Определите пункты меню программы. Далее сохраните графический ресурс меню (файл с расширением *.rc) и добавьте его в проект, для этого следует выбрать пункт "Project" меню Visual C ++, далее "Add to project", "Files" и выбрать необходимый ресурсный файл. После этого соответствующая страница ResourceView появляется внизу окна структуры проекта. В карте сообщений программы каждому пункту меню, представленый собственным идентификатором, с помощью макрокоманды ON_COMMAND () поставьте в соответствие функцию-обработчик:
ON_COMMAND (ID_FILE_NEWITEM, OnNewItem)
То есть здесь пункта с идентификатором ID_FILE_NEWITEM отвечает функция OnNewItem (), а пункта ID_FILE_EXIT - функция OnExit (). В классе главного окна определите прототипы обработчиков пунктов меню. После этого класс окна будет выглядеть на-ступним образом:
class CMainWin: public CFrameWnd
[Public: void OnExit ();
void OnNewItem ();
CMainWin ();
DECLARE_MESSAGE_MAP () ];
Реализуйте тексты обработчиков пунктов меню, например:
void CMainWin :: OnExit ()
[Int response = MessageBox ("Закончить работу", "Информация", MB_ ICONQUESTION | MB_YESNO);
if (response == IDYES) SendMessage (WM_CLOSE);
]
Подключите меню к выводу главного окна программы. Это можно сделать двумя способами, приведены в примерах конструкторов главного меню:
Конструктор с макросом MAKEINTRESOURCE ()
CMainWin :: CMainWin ()
[Create (NULL, "Простая MFC-программа", WS_OVERLAPPEDWINDOW, rectDefault, NULL, MAKEINTRESOURCE (IDR_MENU1));
]
Конструктор с объектом меню
CMainWin :: CMainWin ()
[Create (NULL, "Простая MFC-программа");
my_menu.LoadMenu (IDR_MENU1);
SetMenu (& my_menu);
]
Первый пример выглядит несколько сложнее. В нем загрузки меню обеспечивается макросом MAKEINTRESOURCE () (сделать внутренним ресурс), который идет только 6-м параметром, и создает длинную строку параметров. Второй пример потребует объявления переменной для меню следует включить в класс главного окна, например: CMenu my_menu;
Также здесь необходимы два вызова функций - загрузки ресурса меню в соответствующий объект (my_menu.LoadMenu ()) и подключения меню к окну (SetMenu ()).