Sdílet prostřednictvím


MFC – ovládací prvky ActiveX: Přidání přizpůsobených vlastností

Vlastní vlastnosti se liší od uložené vlastnosti, v tom smyslu, že nejsou již implementované vlastnosti COleControl třídy.Vlastní vlastnost se používá k vystavení státu nebo vzhled ovládacího prvku ActiveX, aby programátor pomocí ovládacího prvku.

Tento článek popisuje, jak přidat vlastní vlastnosti do ovládacího prvku ActiveX pomocí Průvodce přidáním vlastnosti a vysvětluje výsledné úpravy kódu.Témata zahrnují:

  • Chcete-li přidat vlastní vlastnosti pomocí Průvodce přidáním vlastnosti

  • Přidat vlastnost průvodce změny vlastních vlastností

Vlastní vlastnosti existují ve čtyřech variantách provádění: členskou proměnnou, členskou proměnnou s Parameterized, oznámení a metody Get/Set.

  • Členské proměnné implementace

    Tato implementace představuje stav vlastnosti jako členské proměnné ve třídě ovládacího prvku.Používejte implementace členské proměnné není důležité znát při změně hodnoty vlastnosti.Tato implementace ze tří typů vytvoří nejméně množství kódu, podporu pro vlastnost.Makro položku mapy odeslání členské proměnné implementace je DISP_PROPERTY.

  • Členské proměnné s implementací oznámení

    Tato implementace se skládá z členské proměnné a funkce oznámení, vytvořené pomocí Průvodce přidáním vlastnosti.Oznámení je automaticky volána funkce v rámci po změně hodnoty vlastnosti.Použijte pokud potřebujete být oznámeno po změně hodnoty vlastnosti s implementací oznamovací členskou proměnnou.Tato implementace vyžaduje více času, protože volání funkce vyžaduje.Makro položku mapy odeslání pro tuto implementaci je DISP_PROPERTY_NOTIFY.

  • Implementace metody Get/Set

    Tato implementace se skládá z dvojice členské funkce třídy ovládacího prvku.Implementace metody Get/Set automaticky volá členských Get požadavku aktuální hodnotu vlastnosti ovládacího prvku uživatele a členské funkce sady, pokud ovládací prvek uživatel požádá o změnu vlastnost.Tato implementace použijte, pokud potřebujete k výpočtu hodnoty vlastnost za běhu, ověřit hodnoty ovládacího prvku uživatelem před změnou skutečné vlastnosti, nebo implementovat typ vlastnosti jen pro čtení nebo zápis.Makro položku mapy odeslání pro tuto implementaci je DISP_PROPERTY_EX.V následující části pomocí Průvodce přidáním vlastnosti, chcete-li přidat vlastní vlastnosti, CircleOffset vlastní vlastnost se používá k prokázání této implementace.

  • Parametrizované implementace

    Průvodce přidáním vlastnosti podporují parametrizované implementace.Přístup k množině hodnot přes jednu vlastnost ovládacího prvku lze použít parametrizované vlastnosti (někdy nazývané vlastnosti pole).Makro položku mapy odeslání pro tuto implementaci je DISP_PROPERTY_PARAM.Další informace o implementaci tohoto typu naleznete v tématu implementování vlastnosti Parametrizovaná v článku ovládací prvky ActiveX: Upřesnit témata.

Použití Průvodce přidáním vlastnosti můžete přidat vlastní vlastnost

Následující postup ukazuje přidání vlastních vlastností, CircleOffset, který používá implementace metody Get/Set.CircleOffset vlastní vlastnost umožňuje uživateli ovládacího prvku posun kruh ze středu ovládacího prvku ohraničovacího rámečku.Postup pro přidání vlastních vlastností s implementací než metody Get/Set je velmi podobné.

Stejným postupem lze také přidat další vlastní vlastnosti, které chcete.Nahraďte název vlastní vlastnosti pro CircleOffset název vlastnosti a parametry.

Chcete-li přidat vlastní vlastnosti CircleOffset pomocí Průvodce přidáním vlastnosti

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

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

  3. Klepněte pravým tlačítkem na uzel rozhraní pro ovládací prvek (druhý uzel uzlu knihovny) a místní nabídce.

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

    Otevře Průvodce přidáním vlastnosti.

  5. V Název vlastnosti zadejte CircleOffset.

  6. Pro Typ implementace, klepněte na tlačítko Metody Get/Set.

  7. V Vlastnost typu vyberte Krátký.

  8. Zadejte jedinečné názvy pro Get a Set funkce nebo přijměte výchozí názvy.

  9. Klepněte na tlačítko Dokončit.

Změny vlastností průvodce přidat vlastní vlastnosti

Po přidání vlastních vlastností CircleOffset, Průvodce přidáním vlastnosti změní záhlaví (.H) a provedení (.Soubory CPP) třídy ovládacího prvku.

Následující řádky jsou přidány do.Soubor H deklarovat dvě funkce nazývá GetCircleOffset a SetCircleOffset:

SHORT GetCircleOffset(void);
void SetCircleOffset(SHORT newVal);

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

[id(2), helpstring("property CircleOffset")] SHORT CircleOffset;
[id(3), helpstring("property MyProperty")] SHORT MyProperty;

Tento řádek přiřadí vlastnosti CircleOffset zvláštní číslo ID z metody pozici v seznamu metod a vlastností, Průvodce přidáním vlastnosti.

Navíc je přidána následující řádek na mapě odeslání (v.Soubor CPP třídy ovládacího prvku) mapovat vlastnost CircleOffset ovládacího prvku dvě obslužné rutiny funkce:

DISP_PROPERTY_EX_ID(CMyAxUICtrl, "CircleOffset", dispidCircleOffset, GetCircleOffset, SetCircleOffset, VT_I2)

Nakonec implementace GetCircleOffset a SetCircleOffset funkce jsou přidány na konec ovládacího prvku.Soubor CPP.Ve většině případů budete upravovat funkce Get a vrátí hodnotu vlastnosti.Funkce Set zpravidla obsahují kód, který má být spuštěn před nebo po změně vlastností.

void CMyAxUICtrl::SetCircleOffset(SHORT /*newVal*/)
{
   AFX_MANAGE_STATE(AfxGetStaticModuleState());

   // TODO: Add your property handler code here

   SetModifiedFlag();
}

Všimněte si, že Průvodce přidáním vlastnosti automaticky přidá volání, na SetModifiedFlag, do těla funkce Set.Volání této funkce označí ovládací prvek jako změněná.Pokud ovládací prvek byl změněn, když je obal uložen budou uloženy svého nového státu.Tato funkce by měla být volána při každé změně hodnoty vlastnosti, uložena jako část trvalý stav ovládacího prvku.

Viz také

Referenční dokumentace

Třída COleControl

Koncepty

MFC – ovládací prvky ActiveX

MFC – ovládací prvky ActiveX: Vlastnosti

MFC – ovládací prvky ActiveX: Metody