Udostępnij za pośrednictwem


Formanty MFC ActiveX: dodawanie właściwości niestandardowych

Właściwości niestandardowe różnią się od właściwości zapasów, w tym właściwości niestandardowe nie zostały jeszcze zaimplementowane przez COleControl klasy.Właściwość niestandardowa jest używany wystawiać niektóre Państwa lub wygląd formantu ActiveX programiście przy użyciu formantu.

W tym artykule opisano sposób dodawania właściwości niestandardowej 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ą w czterech odmianach wykonania: zmienna Państwa, członek zmiennej z powiadomień, metody Get i Set i sparametryzowana.

  • Członek realizacji zmiennej

    Ta implementacja przedstawia stan właściwości jako zmienna członka w klasie kontroli.Zmienne Członkowskie wykonania należy użyć, gdy nie jest ważne, aby wiedzieć, gdy zmienia się wartość właściwości.Z trzech typów ta implementacja tworzy najmniejszą ilość kodu obsługi dla właściwości.Makro wpisu mapy wysyłki za wdrożenie zmienne Członkowskie jest DISP_PROPERTY.

  • Zmienna członka z implementacją powiadomień

    Ta implementacja składa się zmienna członka i funkcja powiadamiania, utworzony za pomocą Kreatora dodawania właściwości.Funkcja powiadamiania jest wywoływana automatycznie przez ramach po zmiany wartości właściwości.Zmienne członkowskie z implementacją powiadomienia jeżeli zechcesz użyć zgłaszane 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/Set

    Ta implementacja składa się z pary funkcji elementów członkowskich w klasie kontroli.Implementacji metody Get i Set automatycznie wywołuje Członkowskie Get funkcja żądanie użytkownika formantu bieżącą wartość właściwości i zestaw funkcji składowej żądanie użytkownika formantu można zmienić właściwości.Użyj tej implementacji podczas konieczne do obliczenia wartości właściwości w czasie wykonywania, sprawdzania poprawności przekazanego przez formantu użytkownika przed zmianą własności rzeczywistej wartości, lub implementowania typ właściwości lub zapisu tylko do odczytu.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 właściwości niestandardowej CircleOffset do wykazania tej implementacji.

  • Sparametryzowana implementacji

    Sparametryzowana implementacji jest obsługiwany przez Kreatora dodawania właściwości.Właściwość sparametryzowana (czasami nazywany tablicy właściwości) można dostęp to zbiór 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 implementowania tego typu, zobacz wykonywania właściwość sparametryzowana w artykule formantów ActiveX: Tematy zaawansowane.

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

W poniższej procedurze przedstawiono dodawanie właściwości niestandardowych, CircleOffset, który używa metody Get i Set implementacji.Właściwość niestandardowa CircleOffset umożliwia użytkownikowi formantu przesunięcie okrąg od środka obwiedni prostokąt formantu.Procedura dodawania właściwości niestandardowych z implementacją innego niż metody Get i Set jest bardzo podobne.

Tę samą procedurę można również inne właściwości niestandardowe, które chcesz dodać.Podstaw nazwę właściwości niestandardowej CircleOffset nazwa właściwości i parametrów.

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

  1. Załaduj projekt z kontroli.

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

  3. Kliknij prawym przyciskiem myszy węzeł interfejsu kontrolnej (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 Typ implementacji, kliknij przycisk Metody Get i Set.

  7. W Typ właściwości wybierz opcję Krótki.

  8. Wpisz unikatowe nazwy dla Get i zestaw funkcji lub zaakceptować nazwy domyślne.

  9. Kliknij Zakończ.

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

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

Następujące wiersze są dodawane do.Plik H zadeklarować dwóch funkcji o nazwie GetCircleOffset i SetCircleOffset:

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

Następujący wiersz jest dodawany do swojej kontroli.Plik IDL:

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

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

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

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

Wreszcie, implementacje GetCircleOffset i SetCircleOffset funkcje są dodawane na końcu formantu.Plik CPP.W większości przypadków użytkownik zmodyfikuje funkcji Get zwraca wartość właściwości.Funkcja zestawu będzie zazwyczaj zawierać kod, który powinien być wykonany przed lub po wprowadzeniu zmian właściwości.

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

   // TODO: Add your property handler code here

   SetModifiedFlag();
}

Uwaga Aby dodać właściwość Kreator automatycznie doda wywołanie, do SetModifiedFlag, do treści funkcji 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 zostać wywołana, gdy właściwość, zapisywane jako część trwały stan formantu, zmienia wartość.

Zobacz też

Informacje

Klasa COleControl

Koncepcje

Formanty MFC ActiveX

Formanty MFC ActiveX: właściwości

Formanty MFC ActiveX: metody