Приложение WebHelp
Создайте новый проект под названием WebHelp. В качестве типа приложения выберите из списка Type строку Application. Наберите в редакторе исходный текст приложения и сохраните его в файле WebHelp.cpp (листинг 5.1). Чтобы быстрее набрать текст приложения, вы можете получить его, изменив исходный текст приложения MFMenu, которое мы приводили в 24 томе.
Включите файл WebHelp.cpp в проект. Теперь надо перейти к созданию ресурсов, используемых в приложении.
Листинг 5.1. Файл WebHelp.cpp
//============================================================
// Приложение WebHelp: справочная система на основе WWW
//
// (C) Фролов Г.В., 1997
// E-mail: frolov@glas.apc.org
// WWW: http://www.glasnet.ru/~frolov
// или
// http://www.dials.ccas.ru/frolov
//============================================================
// Включаемый файл для MFC
#include <afxwin.h>
#include "WebHelpRes.h"
//=====================================================
// Класс CWebHelpApp - главный класс приложения
//=====================================================
class CWebHelpApp : public CWinApp
{
public:
// Мы будем переопределять метод InitInstance,
// предназначенный для инициализации приложения
virtual BOOL InitInstance();
};
// Создаем объект приложение класса CWebHelpApp
CWebHelpApp WebHelpApp;
//=====================================================
// Класс CWebHelpWindow - представляет главное окно
//=====================================================
class CWebHelpWindow : public CFrameWnd
{
public:
// Объявляем конструктор класса CWebHelpWindow
CWebHelpWindow();
// Объявляем методы для обработки команд меню
afx_msg void WebHelpCommand();
afx_msg void AboutCommand();
afx_msg void ExitAppCommand();
// Макрокоманда необходима, так как класс
// CWebHelpWindow обрабатывает сообщения
DECLARE_MESSAGE_MAP()
};
//=====================================================
// Метод MenuCommand
// Обрабатывает команду ID_TEST_BEEP
//=====================================================
void CWebHelpWindow::WebHelpCommand()
{
// Запускаем навигатор для просмотра справочной
// информации, записанной на сервере WWW
ShellExecute(NULL, "open",
"http://www.dials.ccas.ru/frolov/rwin/webhelp.htm",
NULL, NULL, SW_SHOWNORMAL);
}
//=====================================================
// Метод MenuCommand
// Обрабатывает команду ID_TEST_BEEP
//=====================================================
void CWebHelpWindow::AboutCommand()
{
MessageBox("World Wide Web Help, \n(c) Frolov Grigory");
}
//=====================================================
// Метод ExitApp
//=====================================================
void CWebHelpWindow::ExitAppCommand()
{
DestroyWindow();
}
//=====================================================
// Таблица сообщений класса CWebHelpWindow
//=====================================================
BEGIN_MESSAGE_MAP(CWebHelpWindow, CFrameWnd)
ON_COMMAND(ID_HELP_WEBHELP, WebHelpCommand)
ON_COMMAND(ID_HELP_ABOUT, AboutCommand)
ON_COMMAND(ID_FILE_EXIT, ExitAppCommand)
END_MESSAGE_MAP()
//=====================================================
// Метод InitInstance класса CWebHelpApp
//=====================================================
BOOL CWebHelpApp::InitInstance()
{
// Создаем объект класса CWebHelpWindow
m_pMainWnd = new CWebHelpWindow();
// Отображаем окно на экране
m_pMainWnd -> ShowWindow(m_nCmdShow);
// Обновляем содержимое окна
m_pMainWnd -> UpdateWindow();
return TRUE;
}
//=====================================================
// Конструктор класса CWebHelpWindow
//=====================================================
CWebHelpWindow::CWebHelpWindow()
{
// Создаем окно приложения, соответствующее
// данному объекту класса CWebHelpWindow
Create(NULL, "World Wide Web Help", WS_OVERLAPPEDWINDOW,
rectDefault, NULL, MAKEINTRESOURCE(IDR_MENU));
}