このチュートリアルでは、以下の項目について説明します。
必要なOriginのバージョン: Origin 2017 以降
Note: こちらから、サンプルファイルをダウンロードできます。 |
HTMLダイアログを作成する際には、まず初めにHTMLページを作成します。
<!DOCTYPE html> <html> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <head> <title> A Small Hello </title> </head> <body> <h1>Hello World</h1> <p>This is very minimal "hello world" HTML document.</p> </body> </html>
Note:編集を終えたら、ブラウザでこのページを開いて、確認します。 |
このセクションでは、ダイアログのHTMLページ表示を作成します。
#include <Origin.h> #include <..\OriginLab\DialogEx.h> #include <..\OriginLab\HTMLDlg.h>
HTMLDlg
クラスから生成し、手法GetInitURL()
の中にHTMLページを示します。
class HelloWorldDlg: public HTMLDlg { public: string GetInitURL() //htmlファイルのパス取得 { string strFile = __FILE__; //現在のファイルのパス return GetFilePath(strFile) + "index.html"; } };
void hello() { HelloWorldDlg dlg; dlg.DoModalEx(GetWindow()); }
「Hello World」の付いたHTMLダイアログがポップアップされます。
ダイアログを変更してイベントヘッダーを追加し、プログラムを改良することができます。
Note: 以下の機能の完全なコードは「HelloWorldDlg1.cpp」で利用可能です。 |
この設定を行うには、ModifyStyle
を使い、ダイアログクラスの手法 OnInitDialog
「WS_THICKFRAME」を無効にします。
BOOL OnInitDialog() { ModifyStyle(WS_THICKFRAME, 0);//サイズ変更禁止 return HTMLDlg::OnInitDialog(); }
対のクラス手法GetDlgInitSize
をダイアログクラスから呼び出し、ダイアログの幅と高さを指定する必要があります。
BOOL GetDlgInitSize(int& width, int& height)//ダイアログサイズ取得 { width = 500; height = 200; return true; }
ダイアログビルダと同様に、メッセージマップを使って、どのイベントを扱うのか、どの関数を呼び出すのかを指定します。
例えば、イベントハンドラー手法をユーザ定義のクラス「HelloWorldDlg」に 加えて、ダイアログを閉じるとメッセージがポップアップするようにします。
HelloWorldDlg
にある以下のメッセージマップにより、ダイアログメッセージをマップします。
//メッセージマップ public: EVENTS_BEGIN_DERIV(HTMLDlg) ON_DESTROY(OnDestroy) EVENTS_END_DERIV
HelloWorldDlg
に加えて、ダイアログを閉じるとメッセージがポップアップするようにします。
BOOL OnDestroy() { MessageBox(GetSafeHwnd(), _L("Thank you and have a good day!"),_L("Message")); return true; }