Udostępnij za pośrednictwem


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

  1. Załadować projekt programu kontroli.

  2. W widoku klasy rozwiń węzeł Biblioteka formantu.

  3. Kliknij prawym przyciskiem myszy węzeł interfejsu dla formantu (drugiego węzła węzeł biblioteki), aby otworzyć menu skrótów.

  4. W menu skrótów kliknij polecenie Dodaj i kliknij przycisk Dodaj właściwość.

    Spowoduje to otwarcie Kreatora dodawania właściwości.

  5. W Nazwa właściwości wpisz nazwę właściwości użytkownika.

  6. Dla Implementacji typu, kliknij Metody Get i Set.

  7. W Typ właściwości Wybierz właściwego typu właściwości.

  8. Właściwość tylko do odczytu, należy wyczyścić nazwę zestawu funkcji.Właściwość tylko do zapisu, wyczyścić nazwa funkcji Get.

  9. 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.

Zobacz też

Informacje

Klasa COleControl

Koncepcje

Formanty ActiveX MFC

Formanty ActiveX MFC: właściwości

Formanty ActiveX MFC: metody