HTMLヘルプを起動する

Visual C++プログラミングのメモ

【Visual C++ 2008】【MFC】

 HTMLヘルプを起動する方法。 前提条件として、

  • HTMLヘルプファイルを事前に準備していること
  • ファイル名は、実行ファイルの拡張子を「chm」に変更したものと同じ
  • 配置場所は、実行ファイルと同じ

とする。

[F1]キー押下にて起動する方法

(1)
 アプリケーションクラスのコンストラクタに、以下を追加。


    EnableHtmlHelp();

(2)
 CWinApp::OnHelpをオーバーライドするために、アプリケーションクラスのクラスヘッダのpublicに、メンバ定義を追加。


    afx_msg void OnHelp();

(3)
 メッセージマップより、MFCアプリケーションウィザードが生成したON_COMMAND(ID_HELP, &CWinApp::OnHelp)を削除。 代わりに、ON_COMMAND(ID_HELP, OnHelp)を追加する。 この「ID_HELP」はデフォルトにて定義されているので、resource.hに追加は不要。

(4)
 メンバ関数を記述。


void CXxxxApp::OnHelp()
{
    HtmlHelp(0L);
}

ヘルプ用ボタン押下にて起動する方法

(1)
 アプリケーションクラスのコンストラクタに、以下を追加。


    EnableHtmlHelp();

(2)
 ウィンドウ/ダイアログクラスに、ヘルプ用のボタンをID「IDHELP」にて作成する。 この「IDHELP」はデフォルトにて定義されているので、resource.hに追加は不要。

(3)
 CWnd::OnHelpをオーバーライドするために、ウィンドウ/ダイアログクラスのクラスヘッダのprotectedに、メンバ定義を追加。


    afx_msg void OnHelp();

(4)
 メッセージマップに、ON_COMMAND(IDHELP, OnHelp)を追加。

(5)
 メンバ関数を記述。


void CXxxxDlg::OnHelp()
{
    HtmlHelp(0L);
}

 上記いずれの方法でも、ヘルプを開いたままでアプリケーションを終了すると、自動的にヘルプを閉じる。

(メモ)

  • [F1]キーとヘルプ用ボタンにて、以下の違いに注意
    • [F1]キー → CWinApp::OnHelpのオーバーライドにより、ID_HELPにて、CWinApp::HtmlHelpを呼び出す
    • ヘルプ用ボタン → CWnd::OnHelpのオーバーライドにより、IDHELPにて、CWnd::HtmlHelpを呼び出す
  • MSDNライブラリの「CWinApp::EnableHtmlHelp」「CWinApp::OnHelp」「CWinApp::HtmlHelp」「CWnd::OnHelp」「CWnd::HtmlHelp」を参照のこと