自作のヘルプを呼び出す方法 – プログラミング – Home

自作のヘルプを呼び出す方法
 
通知
すべてクリア

[解決済] 自作のヘルプを呼び出す方法


potu
 potu
(@potu)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

potuです。いつもお世話になっております。

※下記に出てくる「xxx」は、exeの名前です。

・目的
自分で作成したヘルプファイルを、メニューの「ヘルプ」-「xxxのヘルプ」を押したときに表
示させたいと思います。

・現在出来ているところ
ヘルプファイルは作成済みです。

・出来ていないところ
メニューから「ヘルプ」-「xxxのヘルプ」を押したときに自作のヘルプを表示させる部分で
す。

・ヘルプファイルの作成方法
ヘルプファイルは、「HelpCard」というソフトを使用して作成したものです。
「Help Workshop」と同じようにヘルプを作ることが出来るものです。
(ヘルプのコンパイラは「Help Workshop」を使用しているようです)
作成された「xxx.hlp」をヘルプとして使用したいと思います。

・行ってみたこと
過去ログの
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?
print+200109/01090085.txt」を見て、

1.exeのファイル名とhlpのファイル名(例:123.exeと123.hlp)を同じにして同じフォルダに
入れる。
2.メニューのヘルプがクリックされたときのソースに
AfxGetApp()->WinHelp(0);
 を記述。

結果・・・「このトピックは存在しません。アプリケーションの製造元に問い合わせて、新しい
ヘルプファイルを入手してください」というメッセージボックスが表示されました。

・教えていただきたいこと
メニューから「ヘルプ」-「xxxのヘルプ」を押したときに自作のヘルプを表示させる方法で
す。

環境は、Win2000, VC6.0, コンソールアプリで作成しています。

ご教授をお願いいたします。


引用未解決
トピックタグ
potu
 potu
(@potu)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

potuです。

すみません 環境が違っていました。

「コンソールアプリ」ではなく、「MFC使用」です。


返信引用
さえずり
 さえずり
(@さえずり)
ゲスト
結合: 23年前
投稿: 2
 

 MFCを使用でしたら・・・・
 CWinApp::m_pszHelpFilePathにヘルプファイルのフルパス
が記述さています。これを変更する事でお望みの動作をするかと。

BOOL CXXXApp::InitInstance() {

:

 free((void*)m_pszHelpFilePath) ;
 m_pszHelpFilePath = _tcsdup( 自作したヘルプファイルのフルパス ) ;
}


返信引用
potu
 potu
(@potu)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

さえずりさん レスありがとうございます。

教えていただいた方法でやってみましたが、同じエラーメッセージが表示されました。
(「このトピックは存在しません。アプリケーションの製造元に問い合わせて、新しい
ヘルプファイルを入手してください」)

そこで、フルパスを1階層上に変更して実行してみました。
(「AAA\BBB.HLP」を「AAA」という風に)

実行すると、ヘルプが無いので(あたりまえですが)、「自分で探しますか?」という
メッセージボックスが出てきたので、「はい」で自作のヘルプファイルを指定しました。

そうすると、エラーメッセージが表示されました。

ヘルプファイルのみを普通に実行すると、何のエラーも無く表示されます。

何が原因でしょうか・・・。(?_?)


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

引数の0ですが、ヘルプを作成したときにトピックを指定しませんでしたか?
そのときに値を直接していしているならその値
ヘルプツールによっては、なんらかのdefineを定義したヘッダファイルを
作ってくれている可能性もあります
で、0というのは例であって、自分が作ったヘルプのトピック番号に0
が無ければ、そのようなエラーが出る可能性があると思います

WinHelp(0, HELP_FINDER);
などとやってエラーがでないようでしたら
WinHelp(0)で指定した0番のトピックが無いと断定してよいでしょう
(WinHelp(0)とWinHelp(0, HELP_CONTEXT)は同じです)

トピックを指定して起動したいのなら
ヘルプを作成したときに指定した番号なり、ヘルプツールが作成してくれた
define値なりを使ってみてください
トピック検索ダイアログを最初に出したいのなら
WinHelp(0, HELP_FINDER);
で良かったと思います


返信引用
potu
 potu
(@potu)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

kuさん レスありがとうございます。

>WinHelp(0, HELP_FINDER);
>などとやってエラーがでないようでしたら
>WinHelp(0)で指定した0番のトピックが無いと断定してよいでしょう

kuさんのおっしゃる通りでした。

「WinHelp(0, HELP_FINDER);」に変更したら、正常に動きました。

ありがとうございました。m(__)m


返信引用
potu
 potu
(@potu)
ゲスト
結合: 23年前
投稿: 36
Topic starter  

potuです。

すみません 解決マーク忘れてました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました