//=====================================================
class CMFMessageWindow : public CFrameWnd {
public:
// Объявляем конструктор класса CMFMessageWindow
CMFMessageWindow();
// Объявляем методы для обработки команд меню
afx_msg void FrameMessageCommand();
afx_msg void ExitApp();
// Макрокоманда необходима, так как класс
// CMFMessageWindow обрабатывает сообщения
DECLARE_MESSAGE_MAP()
};
//=====================================================
// Метод MessageCommand
// Обрабатывает команду ID_TEST_BEEP
//=====================================================
void CMFMessageWindow::FrameMessageCommand() {
::MessageBox(NULL, "Command received in CMFMessageWindow Message Map", "Message", MB_OK);
}
//=====================================================
// Метод MessageCommand
// Обрабатывает команду ID_TEST_BEEP
//=====================================================
void CMFMessageApp::AppMessageCommand() {
::MessageBox(NULL, "Command received in CMFMessageApp Message Map", "Message", MB_OK);
}
//=====================================================
// Таблица сообщений класса CMFMessageWindow
//=====================================================
BEGIN_MESSAGE_MAP(CMFMessageWindow, CFrameWnd)
ON_COMMAND(ID_TEST_INFRAMECLASS, FrameMessageCommand)
ON_COMMAND(ID_TEST_INBOTHCLASS, FrameMessageCommand)
END_MESSAGE_MAP()
//=====================================================
// Таблица сообщений класса CMFMessageApp
//=====================================================
BEGIN_MESSAGE_MAP(CMFMessageApp, CWinApp)
ON_COMMAND(ID_TEST_INAPPCLASS, AppMessageCommand)
ON_COMMAND(ID_TEST_INBOTHCLASS, AppMessageCommand)
END_MESSAGE_MAP()
//=====================================================
// Метод InitInstance класса CMFMessageApp
//=====================================================
BOOL CMFMessageApp::InitInstance() {
// Создаем объект класса CMFMessageWindow
m_pMainWnd = new CMFMessageWindow();
// Отображаем окно на экране
m_pMainWnd–>ShowWindow(m_nCmdShow);
// Обновляем содержимое окна
m_pMainWnd–>UpdateWindow();
return TRUE;
}
//=====================================================
// Конструктор класса CMFMessageWindow
//=====================================================
CMFMessageWindow::CMFMessageWindow() {
// Создаем окно приложения, соответствующее
// данному объекту класса CMFMessageWindow
Create(NULL, "Hello MFC", WS_OVERLAPPEDWINDOW, rectDefault, NULL, MAKEINTRESOURCE(IDR_MENU));
}
Используя редактор ресурсов, создайте файл ресурсов и включите в него меню Test, содержащее четыре строки, имеющие идентификаторы, описанные в следующей таблице. Присвойте меню идентификатор IDR_MENU. Затем включите файл ресурсов в проект.