共用方式為


MFC ActiveX 控制件:新增自定義方法

自訂方法與預設方法不同,因為它們尚未由COleControl實作。 您必須為每個新增至控件的自定義方法提供實作。

這很重要

ActiveX 是不應該用於新開發的舊版技術。 如需取代 ActiveX 的新式技術詳細資訊,請參閱 ActiveX 控件

ActiveX 控制項使用者可以隨時呼叫自定義方法,以執行控件特定的動作。 自定義方法的分派對應專案是格式「DISP_FUNCTION」。

使用 [新增方法精靈] 新增自定義方法

下列程式示範將自定義方法 PtInCircle 新增至 ActiveX 控制項的基本架構程式代碼。 PtInCircle 會判斷傳遞至控件的座標是否在圓形內部或外部。 這個相同的程序也可以用來新增其他自訂方法。 將自定義方法名稱和其參數取代為 PtInCircle 方法名稱和參數。

備註

此範例會使用 InCircle 來自事件一文的 函式。 如需此函式的詳細資訊,請參閱 MFC ActiveX 控件:將自定義事件新增至 ActiveX 控件一文。

使用 [新增方法精靈] 新增 PtInCircle 自定義方法

  1. 載入控件的專案。

  2. 在 [類別檢視視圖] 中,展開控制項的程式庫節點。

  3. 以滑鼠右鍵單擊控件的介面節點(連結庫節點的第二個節點),以開啟快捷方式功能表。

  4. 從快捷方式功能表中,按兩下 [ 新增 ],然後按下 [ 新增方法]。

    這會開啟 [新增方法精靈]。

  5. 在 [ 方法名稱] 方塊中,輸入 PtInCircle

  6. 在 [ 內部名稱] 方塊中,輸入方法的內部函式名稱或使用預設值(在此案例中為 PtInCircle)。

  7. 傳回類型 方塊中,按一下 VARIANT_BOOL 作為方法的傳回類型。

  8. 使用 [參數類型 ] 和 [ 參數名稱] 控件,新增名為 xCoord 的參數(類型 OLE_XPOS_PIXELS)。

  9. 使用參數類型和參數名稱控件,新增名為 yCoord 的參數(類型OLE_YPOS_PIXELS)。

  10. 按一下完成

新增自定義方法的方法精靈變更

當您新增自定義方法時,[新增方法精靈] 會對控件類別標頭進行一些變更(。H) 和實作 (.CPP) 檔案。 以下這一行會新增到控制類別標頭檔中的分派對應宣告 (.H) 檔案:

VARIANT_BOOL PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord);

此程式代碼會宣告名為 PtInCircle的分派方法處理程式。 控制使用者可以使用外部名稱 PtInCircle呼叫此函式。

下列這一行會新增至 控制件的 。IDL 檔案:

[id(1), helpstring("method PtInCircle")] VARIANT_BOOL PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord);

這一行會 PtInCircle 指派方法特定的標識碼、方法在 [新增方法精靈] 方法和屬性清單中的位置。 因為使用 [新增方法精靈] 新增了自定義方法,因此該方法的項目自動新增至專案的.IDL檔案中。

此外,下列這一行位於控制類別的實作檔案(.CPP)中,並新增至該控制項的分派對應:

DISP_FUNCTION_ID(CMyAxUICtrl, "PtInCircle", dispidPtInCircle, PtInCircle, VT_BOOL, VTS_XPOS_PIXELS VTS_YPOS_PIXELS)

DISP_FUNCTION 巨集會將方法 PtInCircle 對應至控件的處理程式函式 PtInCircle,將傳回型別宣告為 VARIANT_BOOL,並宣告兩個參數,類型分別為 VTS_XPOS_PIXELSVTS_YPOSPIXELS,傳遞至 PtInCircle

最後,[新增方法精靈] 會將存根函 CSampleCtrl::PtInCircle 式新增至控件實作的底部 (。CPP) 檔案。 若要 PtInCircle 如先前所述運作,必須修改如下:

VARIANT_BOOL CMyAxUICtrl::PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord)
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());

   CPoint point(xCoord, yCoord);
   return InCircle(point);
}

另請參閱

MFC ActiveX 控制件
類別檢視和物件瀏覽器圖示