Udostępnij za pośrednictwem


Dodawanie właściwości do kontrolki (ALT — Samouczek, część 3)

IPolyCtl to interfejs, który zawiera niestandardowe metody i właściwości kontrolki, i dodasz do niego właściwość.

Aby dodać definicje właściwości do projektu

  1. W widoku klasy rozwiń Polygon gałąź.

  2. Kliknij prawym przyciskiem myszy pozycję IPolyCtl.

  3. W menu skrótów kliknij pozycję Dodaj, a następnie kliknij pozycję Dodaj właściwość. Zostanie wyświetlony kreator Dodawania właściwości .

  4. Wpisz Sides jako nazwę właściwości.

  5. Z listy rozwijanej Typ właściwości wybierz pozycję short.

  6. Kliknij przycisk OK , aby zakończyć dodawanie właściwości.

  7. W Eksplorator rozwiązań otwórz plik Polygon.idl i zastąp następujące wiersze na końcu interfejsuIPolyCtl : IDispatch:

    short get_Sides();
    void set_Sides(short value);
    

    with

    [propget, id(1), helpstring("property Sides")] HRESULT Sides([out, retval] short *pVal);
    [propput, id(1), helpstring("property Sides")] HRESULT Sides([in] short newVal);
    
  8. W Eksplorator rozwiązań otwórz plik PolyCtl.h i dodaj następujące wiersze po definicji :m_clrFillColor

    short m_nSides;
    STDMETHOD(get_Sides)(short* pval);
    STDMETHOD(put_Sides)(short newval);
    

Mimo że masz teraz funkcje szkieletu do ustawiania i pobierania właściwości oraz zmiennej do przechowywania właściwości, należy odpowiednio zaimplementować funkcje.

Aby zaktualizować metody get i put

  1. Ustaw wartość domyślną .m_nSides Ustaw kształt domyślny na trójkąt, dodając linię do konstruktora w pliku PolyCtl.h:

    m_nSides = 3;
    
  2. Zaimplementuj Get metody i Put . Deklaracje get_Sides funkcji i put_Sides zostały dodane do biblioteki PolyCtl.h. Teraz dodaj kod dla get_Sides polecenia i put_Sides , aby PolyCtl.cpp przy użyciu następujących elementów:

    STDMETHODIMP CPolyCtl::get_Sides(short* pVal)
    {
       *pVal = m_nSides;
    
       return S_OK;
    }
    
    STDMETHODIMP CPolyCtl::put_Sides(short newVal)
    {
       if (2 < newVal && newVal < 101)
       {
          m_nSides = newVal;
          return S_OK;
       }
       else
       {
          return Error(_T("Shape must have between 3 and 100 sides"));
       }
    }
    

Metoda get_Sides zwraca bieżącą wartość Sides właściwości za pośrednictwem pVal wskaźnika. W metodzie put_Sides kod gwarantuje, że użytkownik ustawia Sides właściwość na akceptowalną wartość. Wartość minimalna musi wynosić 3, a ponieważ dla każdej strony zostanie użyta tablica punktów, 100 jest rozsądnym limitem maksymalnej wartości.

Masz teraz właściwość o nazwie Sides. W następnym kroku zmienisz kod rysunku, aby go używał.

Powrót do kroku 2 | Do kroku 4

Zobacz też

Samouczek