共用方式為


將控制項放在網頁上 (ATL 教學課程,第 7 部分)

您的控制項現在已完成。 若要查看您的控制項在真實世界中的工作,請將它放在網頁上。 當您定義控制項時,已建立包含控制項的 HTML 檔案。 從 方案總管 開啟 PolyCtl.htm 檔案,您可以在網頁上看到您的控制項。

在此步驟中,您會將功能新增至 控制項,並編寫網頁腳本以回應事件。 您也會修改 控制項,讓 Internet Explorer 知道控制項對腳本而言是安全的。

新增功能

新增控制項功能

開啟 PolyCtl.cpp 並取代下列程式碼:

if (PtInRegion(hRgn, xPos, yPos))
  Fire_ClickIn(xPos, yPos);
else
  Fire_ClickOut(xPos, yPos);

取代為

short temp = m_nSides;
if (PtInRegion(hRgn, xPos, yPos))
{
  Fire_ClickIn(xPos, yPos);
  put_Sides(++temp);
}
else
{
  Fire_ClickOut(xPos, yPos);
  put_Sides(--temp);
}

圖形現在會根據您按一下的位置來新增或移除側邊。

編寫網頁腳本

控制項尚未執行任何動作,因此請變更網頁以回應您傳送的事件。

編寫網頁腳本

  1. 開啟 PolyCtl.htm,然後選取 [HTML 檢視]。 將下列幾行新增至 HTML 程式碼。 它們應該在 之後新增, </OBJECT> 但在 之前 </BODY>

    <SCRIPT LANGUAGE="VBScript">
    <!--
        Sub PolyCtl_ClickIn(x, y)
            MsgBox("Clicked (" & x & ", " & y & ") - adding side")
        End Sub
        Sub PolyCtl_ClickOut(x, y)
            MsgBox("Clicked (" & x & ", " & y & ") - removing side")
        End Sub
    -->
    </SCRIPT>
    
  2. 儲存 HTM 檔案。

您已新增一些從 控制項取得 Sides 屬性的 VBScript 程式碼。 如果您在控制項內按一下,則會增加一個側邊的數目。 如果您按一下控制項外部,您可以減少一個側邊的數目。

指出控制項是用於腳本的保管庫

您只能在 Internet Explorer 中使用 控制項來檢視網頁。 由於安全性弱點,其他瀏覽器不再支援 ActiveX 控制項。

注意

如果看不到控制項,請知道某些瀏覽器需要設定調整才能執行 ActiveX 控制項。 請參閱瀏覽器的檔,以瞭解如何啟用 ActiveX 控制項。

根據您目前的 Internet Explorer 安全性設定,您可能會收到 [安全性警示] 對話方塊。 它指出控制項對腳本可能不安全,而且可能會造成損害。 例如,如果您有顯示檔案的控制項,但也有一個 Delete 刪除檔案的方法,則如果您剛在頁面上檢視它,就會是安全的。 不過,腳本並不安全,因為有人可以呼叫 Delete 方法。

重要

在本教學課程中,您可以變更 Internet Explorer 中的安全性設定,以執行未標示為安全的 ActiveX 控制項。 在主控台中,按一下 [ 網際網路內容 ],然後按一下 [ 安全性 ] 來變更適當的設定。 當您完成本教學課程時,請將安全性設定變更回其原始狀態。

您可以透過程式設計方式警示 Internet Explorer,它不需要顯示此特定控制項的 [安全性警示] 對話方塊。 您可以使用 介面來執行此動作 IObjectSafety 。 ATL 會在 IObject保管庫tyImpl 類別 中提供這個介面的實作。 若要將 介面新增至控制項,請將 新增 IObjectSafetyImpl 至繼承類別清單,並在 COM 對應中新增專案。

若要將 IObject保管庫tyImpl 新增至控制項

  1. 將下列這一行新增至 PolyCtl.h 中繼承類別清單的結尾,並將逗號新增至上一行:

    public IObjectSafetyImpl<CPolyCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER>
    
  2. 將下列這一行新增至 PolyCtl.h 中的 COM 對應:

    COM_INTERFACE_ENTRY(IObjectSafety)
    

建置和測試控制項

建置 控制項。 建置完成後,再次在瀏覽器檢視中開啟 PolyCtl.htm。 這次,應該直接顯示網頁,而不 顯示 [保管庫ty 警示 ] 對話方塊。 如果您按一下多邊形內部,側邊數目就會增加一個。 按一下多邊形外部以減少側邊數目。

回到步驟 6

後續步驟

此步驟結束 ATL 教學課程。 如需 ATL 的詳細資訊連結,請參閱 ATL 起始頁面

另請參閱

教學課程