Formantów MFC ActiveX: Wdrożenie zaawansowane właściwości
W tym artykule opisano tematy związane z implementacją zaawansowane właściwości formantu ActiveX:
Właściwości tylko do odczytu i zapisu tylko do odczytu
Zwracanie kody błędów z właściwością
Właściwości tylko do odczytu i zapisu tylko do odczytu
Kreator dodawania właściwości zapewnia metodę szybki i łatwy do wdrożenia tylko do odczytu lub zapisu tylko do odczytu właściwości formantu.
Aby zaimplementować właściwości tylko do odczytu lub zapisu tylko do odczytu
Załadować projekt programu kontroli.
W widoku klasy rozwiń węzeł Biblioteka formantu.
Kliknij prawym przyciskiem myszy węzeł interfejsu dla formantu (drugiego węzła węzeł biblioteki), aby otworzyć menu skrótów.
W menu skrótów kliknij polecenie Dodaj i kliknij przycisk Dodaj właściwość.
Spowoduje to otwarcie Kreatora dodawania właściwości.
W Nazwa właściwości wpisz nazwę właściwości użytkownika.
Dla Implementacji typu, kliknij Metody Get i Set.
W Typ właściwości Wybierz właściwego typu właściwości.
Właściwość tylko do odczytu, należy wyczyścić nazwę zestawu funkcji.Właściwość tylko do zapisu, wyczyścić nazwa funkcji Get.
Kliknij Zakończ.
Po wykonaniu tej czynności kreatora dodawania właściwości wstawia funkcji SetNotSupported lub GetNotSupported we wpisie mapy wysyłki, zamiast zwykłej Set lub Get funkcji.
Jeśli chcesz zmienić istniejącą właściwość tylko do odczytu lub zapisu tylko do odczytu, można ręcznie edytować mapę wysyłki i usuwanie zbędnych funkcji Get lub zestaw z klasy control.
Właściwość warunkowo tylko do odczytu lub tylko do zapisu (na przykład tylko wtedy, gdy formant jest działających w okreolonym trybie), należy można Get lub zestaw funkcji, jak normalne i wywołać SetNotSupported lub GetNotSupported działać, gdzie stosowne.Na przykład:
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();
}
}
Ten przykładowy kod wywołuje SetNotSupported Jeśli m_bReadOnlyMode danych jest TRUE.Jeśli FALSE, a następnie właściwość jest ustawiona na nową wartość.
Zwracanie kody błędów z właściwością
Aby wskazać, że wystąpił błąd podczas próby uzyskania lub ustawić właściwość, należy użyć COleControl::ThrowError funkcji, która ma SCODE (kod stanu) jako parametr.Można używać wstępnie zdefiniowanych SCODE lub zdefiniować własny.Listę wstępnie zdefiniowanych SCODEs i instrukcje dotyczące definiowania niestandardowych SCODEs, zobacz Obsługi błędów w tym formancie ActiveX w artykule formantów ActiveX: Tematy zaawansowane.
Funkcje pomocnika istnieją dla najbardziej powszechne wstępnie SCODEs, takie jak COleControl::SetNotSupported, COleControl::GetNotSupported, i COleControl::SetNotPermitted.
[!UWAGA]
ThrowErrorma to służyć jedynie jako środek zwracać błąd z Get właściwości lub zestaw funkcji lub metoda automatyzacji.Są to jedyne, ile razy będzie obsługa wyjątków właściwe jest obecnie na stosie.
Aby uzyskać więcej informacji dotyczących raportowania wyjątków w innych obszarach kodu, zobacz COleControl::FireError i Obsługi błędów w tym formancie ActiveX w artykule formantów ActiveX: Tematy zaawansowane.