從 DHTML 呼叫 C++ 程式碼
DHTML 控制件可以裝載在容器中,例如測試容器或 Internet Explorer。 如需如何存取測試容器的資訊,請參閱 使用測試容器 測試屬性和事件。
裝載控件的容器會使用一般控制項介面與控件通訊。 DHTML 使用以 「UI」 結尾的分派介面,與您的C++程式代碼和 HTML 資源通訊。 在修改 ATL DHTML 控制件中,您可以練習新增這些不同介面所呼叫的方法。
若要查看從 DHTML 呼叫C++程式代碼的範例, 請使用 ATL 控件精靈建立 DHTML 控制件 ,並檢查頭檔案和 HTML 檔案中的程式代碼。
在頭檔中宣告 WebBrowser 方法
若要從 DHTML UI 叫用C++方法,您必須將方法新增至控件的 UI 介面。 例如,ATL 控件精靈所建立的頭檔包含 C++ 方法 OnClick
,這是精靈所產生控件之 UI 介面的成員。
檢查 OnClick
控制件的 .h 檔案:
STDMETHOD(OnClick)(IDispatch* pdispBody, VARIANT varColor)
第一個參數 pdispBody 是主體物件分派介面的指標。 第二個參數 varColor 會識別要套用至控件的色彩。
在 HTML 檔案中呼叫C++程序代碼
在頭檔中宣告 WebBrowser 方法之後,您就可以從 HTML 檔案叫用方法。 請注意,在 HTML 檔案中,ATL 控件精靈會插入三個 Windows 分派方法:三 OnClick
種方法會分派訊息以變更控件的背景色彩。
檢查 HTML 檔案中的其中一個方法:
<BUTTON onclick='window.external.OnClick(theBody, "red");'>Red</BUTTON>
在上述 HTML 程式代碼中,視窗外部方法 OnClick
會呼叫 做為按鈕標記的一部分。 方法有兩個參數: theBody
,它會參考 HTML 檔的本文,以及 "red"
,表示按下按鈕時,控件的背景色彩會變更為紅色。 下列 Red
標籤是按鈕的標籤。
如需提供您自己的方法的詳細資訊,請參閱 修改 ATL DHTML 控件 。 如需 HTML 檔案的詳細資訊,請參閱 識別 DHTML 控件專案的 元素。