Ovládací prvky MFC ActiveX: Provedení rozšířené vlastnosti
Tento článek popisuje témata týkající se provádění upřesňující vlastnosti ovládacího prvku ActiveX:
Vlastnosti pouze pro čtení a zápis pouze pro čtení
Chybové kódy návratu z vlastnosti
Vlastnosti pouze pro čtení a zápis pouze pro čtení
Průvodce přidáním vlastností poskytuje rychlý a snadný způsob implementovat vlastnosti ovládacího prvku jen pro čtení nebo jen pro zápis.
Implementovat vlastnost jen pro čtení nebo jen pro zápis
Načtení ovládacího prvku projektu.
V zobrazení třídy rozbalte knihovnu ovládacího prvku.
Uzel rozhraní pro ovládání (druhý uzel uzel knihovny) tlačítkem otevřete místní nabídku.
V místní nabídce klepněte na příkaz Přidat a klepněte na tlačítko Přidat vlastnost.
Otevře Průvodce přidat vlastnost.
V Název vlastnosti zadejte název své vlastnosti.
Pro Typ implementace, klepněte na tlačítko Metody Get a Set.
V Vlastnost typu vyberte správný typ vlastnosti.
Jestliže chcete vlastnost jen pro čtení, zrušte nastavení název funkce.Název funkce Get zrušte, pokud má vlastnost jen pro zápis.
Klepněte na tlačítko Dokončit.
Pokud to uděláte, Průvodce přidáním vlastností vloží funkci SetNotSupported nebo GetNotSupported při odeslání namísto normální nastavení nebo získání funkce.
Pokud chcete změnit existující vlastnost jen pro čtení nebo jen pro zápis, můžete ručně upravit mapu odeslání a odebrat nepotřebné funkce Set nebo Get z třídy řízení.
Jestliže chcete vlastnost podmíněně jen pro čtení nebo jen pro zápis (například pouze v případě, že ovládací prvek pracuje v určitém režimu), můžete zadat funkci Set nebo Get jako normální a volání SetNotSupported nebo GetNotSupported případně fungovat.Příklad:
void CMyAxUICtrl::SetMyProperty(SHORT newVal)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if (m_bReadOnlyMode) // some control-specific state
{
SetNotSupported();
}
else
{
m_iPropVal = newVal; // set property as normal
SetModifiedFlag();
}
}
Tento ukázkový kód volá SetNotSupported Pokud m_bReadOnlyMode je datový člen TRUE.Pokud FALSE, pak je vlastnost nastavena na novou hodnotu.
Chybové kódy návratu z vlastnosti
Označuje, že došlo k chybě při pokusu získat nebo nastavit vlastnost, použijte COleControl::ThrowError funkci, která má SCODE (stavový kód) jako parametr.Můžete použít předdefinované SCODE nebo definovat vlastní.Seznam předdefinovaných SCODEs a pokyny pro definování vlastních SCODEs, viz Zpracování chyb v ovládacím prvku ActiveX vaše v článku ovládací prvky ActiveX: upřesňující témata.
Pomocné funkce pro nejběžnější předdefinované existují SCODEs, jako například COleControl::SetNotSupported, COleControl::GetNotSupported, a COleControl::SetNotPermitted.
[!POZNÁMKA]
ThrowErrorje určen pro použití pouze jako prostředek k vrácení chyby v rámci této vlastnosti Get nebo Set funkci nebo metodu automatizace.Jsou pouze časy, které budou příslušné výjimky popisovač přítomných v zásobníku.
Další informace o hlášení výjimek v jiných oblastech kód, viz COleControl::FireError a Zpracování chyb v svůj ovládací prvek ActiveX v článku ovládací prvky ActiveX: upřesňující témata.