【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」を参照のこと