共用方式為


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 ,並宣告要傳遞 PtInCircle 至 的兩個類型 參數VTS_XPOS_PIXELS VTS_YPOSPIXELS

最後,[新增方法精靈] 會將存根函 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 控制項
類別檢視和物件瀏覽器圖示