Sdílet prostřednictvím


MFC – ovládací prvky ActiveX: Přidání vlastních metod

Vlastní metody se liší od burzovních metod v tom, že nejsou již implementovány COleControl. Musíte zadat implementaci pro každou vlastní metodu, kterou přidáte do ovládacího prvku.

Důležité

technologie ActiveX je starší technologie, která by se neměla používat pro nový vývoj. Další informace o moderních technologiích, které nahrazují technologie ActiveX, najdete v tématu technologie ActiveX Ovládací prvky.

Uživatel ovládacího prvku technologie ActiveX může kdykoli volat vlastní metodu, která provede akce specifické pro řízení. Položka mapy odeslání pro vlastní metody je DISP_FUNCTION formuláře.

Přidání vlastní metody pomocí Průvodce přidáním metody

Následující postup ukazuje přidání vlastní metody PtInCircle do kódu kostru ovládacího prvku technologie ActiveX. PtInCircle určuje, zda jsou souřadnice předané ovládacímu prvku uvnitř nebo mimo kruh. Stejný postup lze také použít k přidání dalších vlastních metod. Nahraďte název vlastní metody a jeho parametry pro název a parametry metody PtInCircle.

Poznámka

Tento příklad používá InCircle funkci z článku Události. Další informace o této funkci naleznete v článku MFC technologie ActiveX ovládací prvky: Přidání vlastních událostí do ovládacího prvku technologie ActiveX.

Přidání vlastní metody PtInCircle pomocí Průvodce přidáním metody

  1. Načtěte projekt ovládacího prvku.

  2. V zobrazení tříd rozbalte uzel knihovny ovládacího prvku.

  3. Kliknutím pravým tlačítkem myši na uzel rozhraní ovládacího prvku (druhý uzel uzlu knihovny) otevřete místní nabídku.

  4. V místní nabídce klepněte na tlačítko Přidat a potom klepněte na tlačítko Přidat metodu.

    Tím se otevře Průvodce přidáním metody.

  5. Do pole Název metody zadejte PtInCircle.

  6. Do pole Interní název zadejte název interní funkce metody nebo použijte výchozí hodnotu (v tomto případě PtInCircle).

  7. V poli Typ návratu klikněte na VARIANT_BOOL pro návratový typ metody.

  8. Pomocí ovládacích prvků Typ parametru a Název parametru přidejte parametr s názvem xCoord (typ OLE_XPOS_PIXELS).

  9. Pomocí ovládacích prvků Typ parametru a Název parametru přidejte parametr s názvem yCoord (typ OLE_YPOS_PIXELS).

  10. Klikněte na Finish (Dokončit).

Přidání změn Průvodce metodou pro vlastní metody

Když přidáte vlastní metodu, Průvodce přidáním metody provede určité změny v hlavičce třídy ovládacího prvku (. H) a implementace (. CPP) soubory. Následující řádek se přidá do deklarace mapy odeslání v hlavičce třídy ovládacího prvku (. H) soubor:

VARIANT_BOOL PtInCircle(OLE_XPOS_PIXELS xCoord, OLE_YPOS_PIXELS yCoord);

Tento kód deklaruje obslužnou rutinu metody dispatch s názvem PtInCircle. Tuto funkci může volat uživatel ovládacího prvku pomocí externího názvu PtInCircle.

Následující řádek je přidán do ovládacího prvku . IDL soubor:

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

Tento řádek přiřadí PtInCircle metodě konkrétní číslo ID, pozici metody v seznamu metod Průvodce přidáním metody a vlastností. Vzhledem k tomu, že Průvodce přidáním metody byl použit k přidání vlastní metody, položka pro ni byla přidána automaticky do projektu . IDL soubor.

Kromě toho následující řádek, který se nachází v implementaci (. CPP) soubor třídy řízení, je přidán do mapy dispečer ovládacího prvku:

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

Makro DISP_FUNCTION mapuje metodu PtInCircle na funkci obslužné rutiny ovládacího prvku, PtInCircledeklaruje návratový typ VARIANT_BOOL a deklaruje dva parametry typu VTS_XPOS_PIXELS a VTS_YPOSPIXELS, které PtInCirclemají být předány .

Nakonec Průvodce přidáním metody přidá funkci zástupných procedur CSampleCtrl::PtInCircle do dolní části implementace ovládacího prvku (. CPP) soubor. Aby PtInCircle funkce fungovala dříve, musí být upravena následujícím způsobem:

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

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

Viz také

MFC – ovládací prvky ActiveX
Ikony zobrazení třídy a prohlížeče objektů