ATL DHTML コントロールの変更
ATL コントロール ウィザードは初期コードを備えています。コントロールをビルドして実行できます。つまり、メソッドがプロジェクト ファイルに書き込む方法と、ディスパッチまたはメソッドを使用して、コントロールの C++ コードへの呼び出しに DHTML 確認できます。ディスパッチ インターフェイスにメソッドを追加できます。次に、HTML リソースのメソッドを呼び出します。
ATL DHTML コントロールを変更するには
クラス ビューで、コントロール プロジェクトを配置します。
に「UI に」持つ OnClickを 1 とおりの方法でインターフェイス注意してください。UI 「」で終わるインターフェイスには、メソッドはありません。
MethodInvokedと呼ばれる「UI 内で」終了インターフェイスにメソッドを追加します。
このメソッドはコンテナーの対話にコントロール コンテナーで使用されるコントロールと対話するために DHTML で使用しているインターフェイスへのインターフェイスではなくに追加されます。コンテナーだけこのメソッドを呼び出すことができます。
.cpp ファイルのスタブ メソッドを検索し、メッセージ ボックスを表示するコードを追加します (例:
::MessageBox(NULL, _T("I'm invoked"), _T("Your Container Message"), MB_OK);
今度はだけで「UI 内で」終了、インターフェイスに追加します HelloHTMLと呼ばれる別のメソッドを追加します。.cpp ファイルの HelloHTML のスタブ メソッドを検索し、メッセージ ボックスを表示するコードを追加します (例:
::MessageBox(NULL, _T("Here's your message"), _T("HelloHTML"), MB_OK);
「UI 内で」終了インターフェイスに 3 番目のメソッド、GoToURLを追加します。IWebBrowser2::Navigateを呼び出してこのメソッドを実装して、次のように、:
m_spBrowser->Navigate(CComBSTR(L"www.microsoft.com"), NULL, NULL, NULL, NULL);
ATL は、の .h ファイルでそのインターフェイスへのポインターを提供するため IWebBrowser2 のメソッドを使用できます。
次に、作成したメソッドを呼び出すに HTML リソースを変更します。これらのメソッドを呼び出すには、次の 3 種類のボタンを追加します。
HTML リソースを変更するには
ソリューション エクスプローラーで、HTML リソースを表示するには、.htm ファイルをダブルクリックします。
HTML、外部 Windows のディスパッチ特にメソッドへの呼び出しを確認します。HTML は、プロジェクトの OnClick のメソッドを呼び出し、パラメーターは割り当て ("red") にコントロール (theBody) および色の本体を示します。メソッドの呼び出し後のテキストは、ボタンに表示されるラベルです。
OnClick の別のメソッドを変更、色追加します。以下はその例です。
<br> <br> <BUTTON onclick='window.external.OnClick(theBody, "white");'>Refresh</BUTTON>
このメソッドは、元、白い背景にコントロールを返すため、ユーザーがクリックできる **[最新の情報に更新]**というラベルのボタンを作成します。
作成した HelloHTML のメソッドの呼び出しを追加します。以下はその例です。
<br> <br> <BUTTON onclick='window.external.HelloHTML();'>HelloHTML</BUTTON>
このメソッドは HelloHTML のメッセージ ボックスを表示するユーザーがクリックできる HelloHTMLというラベルのボタンを作成します。
変更された DHTML コントロールをテストします。ビルドするようになりました。