Udostępnij za pośrednictwem


Formanty ActiveX MFC: Dodawanie właściwości niestandardowe

Właściwości niestandardowe różnią się od właściwości zapasów, właściwości niestandardowe nie są już wdrożone przez COleControl klasy.Właściwości niestandardowych służy narazić niektóre Państwa lub wygląd formantu ActiveX do programista przy użyciu formantu.

W tym artykule opisano sposób dodawania właściwości niestandardowych do formantu ActiveX za pomocą Kreatora dodawania właściwości i wyjaśnia wynikające z niego modyfikacje kodu.Tematy obejmują:

  • Dodawanie właściwości niestandardowych przy użyciu Kreatora dodawania właściwości

  • Dodawanie właściwości Kreatora zmiany właściwości niestandardowych

Właściwości niestandardowe są dostępne w czterech odmian realizacji: Członkowskie zmiennej, zmienna Członkowskie notyfikacji, metody Get i Set i Parameterized.

  • Członkowskiego wykonania zmiennej

    Ta implementacja reprezentuje stan właściwości jako zmienną w klasie kontroli.Przy realizacji Członkowskie zmiennej nie jest ważne, aby dowiedzieć się, gdy zmieni się wartość właściwości.Z trzech typów ta implementacja tworzy przynajmniej ilość kodu obsługi dla właściwości.Makro wpisu mapy wysyłki Członkowskich wdrożenia zmiennej jest DISP_PROPERTY.

  • Zmienna członka z implementacją powiadomień

    Ta implementacja składa się z zmienną i funkcja powiadamiania, utworzony przez Kreatora dodawania właściwości.Funkcja powiadamiania jest automatycznie wywołana w ramach po zmiany wartości właściwości.Za pomocą zmiennej Członkowskich z wykonania notyfikacji powiadamiany, po zmianie wartości właściwości.Ta implementacja wymaga więcej czasu, ponieważ wymaga wywołania funkcji.Makro wpisu mapy wysyłki dla tej implementacji jest DISP_PROPERTY_NOTIFY.

  • Wdrożenie metod GET i Set

    Ta implementacja składa się z pary funkcji elementów członkowskich w klasie kontroli.Metody Get i Set automatycznie wymaga Członkowskie Get funkcja żądanie użytkownika formantu bieżącą wartość właściwości i zestaw funkcji składowej podczas kontroli użytkownik zażąda, można zmienić właściwości.Użyj tej implementacji podczas potrzebne do obliczenia wartości właściwości w czasie wykonywania, sprawdzania poprawności wartości przekazywane przez formantu użytkownika przed zmianą rzeczywistej właściwości lub zaimplementować odczytu lub zapisu tylko typ właściwości.Makro wpisu mapy wysyłki dla tej implementacji jest DISP_PROPERTY_EX.Poniższej sekcji za pomocą Kreatora dodawania właściwości, aby dodać właściwość niestandardową, używa CircleOffset właściwości niestandardowych do wykazania tej implementacji.

  • Wdrożenie sparametryzowana

    Sparametryzowana realizacji jest obsługiwany przez Kreatora dodawania właściwości.Właściwość sparametryzowana (czasami nazywany tablicy właściwości) może służyć dostęp do zbioru wartości przy użyciu pojedynczej właściwości formantu.Makro wpisu mapy wysyłki dla tej implementacji jest DISP_PROPERTY_PARAM.Aby uzyskać więcej informacji dotyczących realizacji tego typu, zobacz Właściwość sparametryzowana wykonawczych w artykule formantów ActiveX: Tematy zaawansowane.

Za pomocą dodać właściwości kreatora, aby dodać właściwości niestandardowe

W poniższej procedurze przedstawiono dodawanie właściwości niestandardowych, CircleOffset, który używa metody Get i Set wykonania.Właściwości niestandardowe CircleOffset umożliwia użytkownikowi formantu przesunięcie okrąg z centrum kontroli prostokąta obwiedni.Procedura dodawania niestandardowych właściwości z implementacją, innych niż metody Get i Set jest bardzo podobne.

Tę samą procedurę można również dodać inne żądane właściwości.Podstaw nazwę właściwości niestandardowej nazwy właściwości CircleOffset i parametrów.

Aby dodać za pomocą Kreatora dodawania właściwości niestandardowej właściwości CircleOffset

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

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

  7. W Typ właściwości wybierz pozycję krótki.

  8. Wpisz unikatowe nazwy dla Get i Set funkcje lub zaakceptować nazwy domyślne.

  9. Kliknij Zakończ.

Dodawanie zmian kreatora właściwości dla właściwości niestandardowe

Podczas dodawania właściwości niestandardowej CircleOffset Kreatora dodawania właściwości wprowadza zmiany do nagłówka (.H) i wykonania (.Pliki CPP) klasy formantu.

Dodaje się następujące wiersze.H plik zadeklarować dwóch funkcji o nazwie GetCircleOffset i SetCircleOffset:

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

Następujący wiersz zostanie dodany do programu kontroli.Plik IDL:

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

Ten wiersz przypisuje właściwości CircleOffset określonego numeru ID z metody pozycji na liście metod i właściwości w Kreatorze dodawania właściwości.

Ponadto dodaje się następujący wiersz do mapy wysyłki (w.CPP plik klasy control) do mapowania właściwości CircleOffset na dwie funkcje obsługi sterowania:

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

Wreszcie, implementacje GetCircleOffset i SetCircleOffset funkcje są dodawane na końcu tego formantu.Plik CPP.W większości przypadków zostanie zmodyfikowana funkcja Get zwróci wartość właściwości.Funkcja Set będzie zazwyczaj zawierać kod, który powinien zostać wykonany przed lub po zmianie właściwości.

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

   // TODO: Add your property handler code here

   SetModifiedFlag();
}

Uwaga, że Kreator dodawania właściwości automatycznie doda wywołanie do SetModifiedFlag, organowi funkcja zestaw.Wywołanie tej funkcji znaki kontroli, ze zmianami.Jeśli formant został zmodyfikowany, jego nowe Państwo zostaną zapisane po zapisaniu kontenera.Ta funkcja powinna być wywołana w każdym przypadku, gdy właściwość zapisywane jako część stanu formantu, zmienia wartość.

Zobacz też

Informacje

Klasa COleControl

Koncepcje

Formanty ActiveX MFC

Formanty ActiveX MFC: właściwości

Formanty ActiveX MFC: metody