共用方式為


MFC ActiveX 控制項: 加入自訂方法

自訂的方法與不同內建方法藉由不已經實作的COleControl。 您必須提供您將加入控制項,每一種自訂方法的實作。

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 方法指派特定的 ID 號碼,加入方法精靈的方法和屬性清單中的方法的位置。 加入方法精靈用來加入自訂方法,因為它的項目已自動加入專案。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。

最後,加入方法精靈會將 stub 函式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 控制項