Sdílet prostřednictvím


Přidání vlastnosti do ovládacího prvku (ATL – tutoriál, část 3)

IPolyCtl je rozhraní, které obsahuje vlastní metody a vlastnosti ovládacího prvku a přidáte do něj vlastnost.

Přidání definic vlastností do projektu

  1. V zobrazení třídy rozbalte Polygon větev.

  2. Klikněte pravým tlačítkem myši IPolyCtl.

  3. V místní nabídce klepněte na tlačítko Přidat a potom klepněte na tlačítko Přidat vlastnost. Zobrazí se průvodce přidáním vlastnosti.

  4. Zadejte Sides jako název vlastnosti.

  5. V rozevíracím seznamu typ vlastnosti vyberte short.

  6. Kliknutím na tlačítko OK dokončíte přidání vlastnosti.

  7. V Průzkumník řešení otevřete Polygon.idl a na konci IPolyCtl : IDispatch rozhraní nahraďte následující řádky:

    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. Z Průzkumník řešení otevřete PolyCtl.h a přidejte následující řádky za definicim_clrFillColor:

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

I když teď máte kostru funkcí pro nastavení a načtení vlastnosti a proměnné pro uložení vlastnosti, musíte odpovídajícím způsobem implementovat funkce.

Aktualizace metod get a put

  1. Nastavte výchozí hodnotu m_nSides. Nastavte výchozí tvar jako trojúhelník přidáním čáry do konstruktoru v PolyCtl.h:

    m_nSides = 3;
    
  2. Implementujte metody Get a Put metody. put_Sides Deklarace get_Sides funkce byly přidány do PolyCtl.h. Teď přidejte kód a get_Sides put_Sides PolyCtl.cpp následujícím kódem:

    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 vrátí aktuální hodnotu Sides vlastnosti ukazatelem pVal . put_Sides V metodě kód zajistí, že uživatel nastaví Sides vlastnost na přijatelnou hodnotu. Minimum musí být 3 a protože se pro každou stranu použije matice bodů, je 100 přiměřený limit maximální hodnoty.

Nyní máte vlastnost s názvem Sides. V dalším kroku změníte kód výkresu tak, aby ho používal.

Zpět na krok 2 | : Krok 4

Viz také

Kurz