C++Builderでアプリケーションから取扱説明書を表示する
そりゃ、直感的なグラフィカルユーザーインターフェースを提供できれば、それに越したことはないのですが、機能の多いアプリケーションでは難しいものです。そこで、ユーザーにオペレーションマニュアルを納めたりするのですが、これをアプリケーションが入っているマシンから直接見れたら、便利なんじゃないの?というお話です。
余談ですが、最近3DSソフトの取扱説明書も紙1枚になって、「詳細はソフト内のマニュアル読んでくれ」というスタンスを取っていますよね。今の子供たちは、ゲームを買った帰りに、車の中でワクワクしながら取説読んだりすることは、なくなってしまうのでしょうかね。少しだけ寂しいですね。
で、それはそうと、手元に実物がなくても操作方法が分かるというのは、なかなか良いことだと思うので、実装してみようと思います。PDFだったりすると、納めるマシンにPDFリーダーを入れたり等、結構面倒臭かったりします。Windowsヘルプ形式とかでマニュアルを作れれば、それが一番良いのですが、当方そんな技術は持ち合わせておりません。
C++Builderで実装する時は、こんな感じです。メニューバーの[ヘルプ(H) → マニュアル(M)]操作等で表示する感じで。ファイルがなければ、すげー無責任なメッセージを表示しておりますが。
//------------------------------------------------------------------------------ // [ヘルプ(H) → マニュアル(M)]のonClickイベント //------------------------------------------------------------------------------ void __fastcall TForm_Main::Menu_Help_ManualClick(TObject *Sender) { // ファイルパスの組み立て UnicodeString filePath = (ExtractFilePath(Application->ExeName) + L"Manual\\マニュアル.pdf"); // ファイルの実行 HINSTANCE executeResult = ShellExecute(Form_Main->Handle, L"open", filePath.c_str(), NULL, NULL, SW_SHOW); // ShellExecute関数は、失敗すると32以下の値が返る。 if ((int)executeResult <= 32) { MessageBox( Form_Main->Handle, L"マニュアルは表示できません。\n紙媒体のマニュアルをご利用ください。", L"エラー", (MB_OK | MB_ICONERROR)); } }
ガシガシコード書いてブログにサンプルを載せ続ける毎日だと素敵ですね。まあ、こんなお粗末なコードが人のお役に立てるかは別として。。
ではでは。