Развиваем наш проект. Нам необходимо создать пункт меню Help с идентификатором ID_HELPVIEW.
Описание функции.
class CStep2App : public CWinApp // класс приложения
{
public:
CStep2App();
virtual BOOL InitInstance();
void OnHelpView(); // реакция на вызов помощи
private:
DECLARE_MESSAGE_MAP() // таблица откликов для класса приложения
};
Реализация.
void CStep2App::OnHelpView()
{
::WinHelp(NULL,"calc.hlp",HELP_CONTENTS,0); // вызов справки
}
Реакция на событие.
BEGIN_MESSAGE_MAP(CStep2App, CWinApp)
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) // пункт меню New
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) // пункт меню Open
ON_COMMAND(ID_HELPVIEW,OnHelpView) // вызов меню Help
END_MESSAGE_MAP()
Вот так будет работать программа.
Для первого знакомства мы воспользуемся функцией Win32 API, хотя следует отметить, что в MFC есть встроенные механизмы работы с файлами помощи. Итак, в результате выбора пункта меню ID_HELPVIEW происходит обращение к функции OnHelpView, которая в свою очередь вызывает функцию Windows запускающую файл помощи. Первый параметр это окно, которому принадлежит помощь, у нас его нет, потом указываем файл помощи, я выбрал стандартный calc.hlp. А вот дальше указываются параметры, суть этих параметров указать конкретную тему или раздел помощи. Запускайте и вызывайте помощь.
Опиши реакцию на событие
BEGIN_MESSAGE_MAP(CStep2App, CWinApp)
.......
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) // пункт меню Open
.......
END_MESSAGE_MAP()
Вызови функцию показа помощи.
::WinHelp(NULL,"calc.hlp",HELP_CONTENTS,0);