Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Фролов Александр. Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT - royallib.ru.doc
Скачиваний:
98
Добавлен:
11.03.2016
Размер:
905.62 Кб
Скачать

Листинг 2.7. Файл mfMenu.Cpp

// Включаемый файл для MFC

#include <afxwin.h>

#include "MFMenuRes.h"

//=====================================================

// Класс CMFMenuApp – главный класс приложения

//=====================================================

class CMFMenuApp : public CWinApp {

public:

 // Мы будем переопределять метод InitInstance,

 // предназначенный для инициализации приложения

 virtual BOOL InitInstance();

};

// Создаем объект приложение класса CMFMenuApp

CMFMenuApp MFMenuApp;

//=====================================================

// Класс CMFMenuWindow – представляет главное окно

//=====================================================

class CMFMenuWindow : public CFrameWnd {

public:

 // Объявляем конструктор класса CMFMenuWindow

 CMFMenuWindow();

 // Объявляем методы для обработки команд меню

 afx_msg void MenuCommand();

 afx_msg void ExitApp();

 // Макрокоманда необходима, так как класс

 // CMFMenuWindow обрабатывает сообщения

 DECLARE_MESSAGE_MAP()

};

//=====================================================

// Метод MenuCommand

// Обрабатывает команду ID_TEST_BEEP

//=====================================================

void CMFMenuWindow::MenuCommand() {

 MessageBeep(0);

}

//=====================================================

// Метод ExitApp

//=====================================================

void CMFMenuWindow::ExitApp() {

 DestroyWindow();

}

//=====================================================

// Таблица сообщений класса CMFMenuWindow

//=====================================================

BEGIN_MESSAGE_MAP(CMFMenuWindow, CFrameWnd)

 ON_COMMAND(ID_TEST_BEEP, MenuCommand)

 ON_COMMAND(ID_TEST_EXIT, ExitApp)

END_MESSAGE_MAP()

//=====================================================

// Метод InitInstance класса CMFMenuApp

//=====================================================

BOOL CMFMenuApp::InitInstance() {

 // Создаем объект класса CMFMenuWindow

 m_pMainWnd = new CMFMenuWindow();

// Отображаем окно на экране

 m_pMainWnd–>ShowWindow(m_nCmdShow);

 // Обновляем содержимое окна

 m_pMainWnd–>UpdateWindow();

 return TRUE;

}

//=====================================================

// Конструктор класса CMFMenuWindow

//=====================================================

CMFMenuWindow::CMFMenuWindow() {

 // Создаем окно приложения, соответствующее

 // данному объекту класса CMFMenuWindow

 Create(NULL, "Hello MFC", WS_OVERLAPPEDWINDOW, rectDefault, NULL, MAKEINTRESOURCE(IDR_MENU));

}

Ресурсы приложения

Добавить в проект новый ресурс очень просто. Вы можете для этого воспользоваться кнопками панели управления Progect или установить указатель мыши на название типа ресурса и нажать правую кнопку мыши. На экране появится временное меню свойств данного ресурса.

Если у вас уже есть ресурсы, которые разработаны ранее и записаны в отдельных файлах на диске, вы можете подключить их к своему проекту. Для этого надо выбрать из временного меню свойств ресурса строку Import. На экране появится диалоговая панель Import Resource с приглашением ввести имя файла подключаемого вами ресурса. Новый ресурс проекта будет записан в подкаталог RES, расположенный в каталоге проекта.

Сам по себе новый ресурс, подключенный к приложению, не принесет никакой пользы. Ваше приложение должно обращаться к нему – загружать в память, обрабатывать сообщения, связанные с этим ресурсом

Среда Visual C++ версии 4.0 не только позволяет просматривать и редактировать ресурсы приложения, она позволяет сразу после создания ресурса вызвать ClassWizard и подключить к ресурсу управляющий программный код. Пока мы не будем использовать ClassWizard, а код, управляющий ресурсами приложения, создадим вручную.