Aracılığıyla paylaş


Denetime Özellik Ekleme (ATL Eğitmeni, Bölüm 3)

IPolyCtl denetimin özel yöntemlerini ve özelliklerini içeren arabirimdir ve bu arabirime bir özellik eklersiniz.

Projenize özellik tanımlarını eklemek için

  1. Sınıf Görünümü'nde dalı Polygon genişletin.

  2. öğesine sağ tıklayın IPolyCtl.

  3. Kısayol menüsünde Ekle'ye ve ardından Özellik Ekle'ye tıklayın. Özellik Ekle sihirbazı görüntülenir.

  4. Özellik Adı olarak yazınSides.

  5. Özellik Türü açılan listesinde öğesini seçinshort.

  6. Özelliği eklemeyi tamamlamak için Tamam'a tıklayın.

  7. Çözüm Gezgini Polygon.idl dosyasını açın ve arabirimin sonunda IPolyCtl : IDispatch aşağıdaki satırları değiştirin:

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

    örneklerini şununla değiştirin:

    [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üm Gezgini PolyCtl.h dosyasını açın ve tanımından m_clrFillColorsonra aşağıdaki satırları ekleyin:

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

Artık özelliğini ayarlayıp almak için iskelet işlevlerine ve özelliği depolamak için bir değişkene sahip olmanıza rağmen, işlevleri uygun şekilde uygulamanız gerekir.

Get ve put yöntemlerini güncelleştirmek için

  1. varsayılan değerini m_nSidesayarlayın. PolyCtl.h dosyasında oluşturucuya çizgi ekleyerek varsayılan şekli üçgen yapın:

    m_nSides = 3;
    
  2. Get ve Put yöntemlerini uygulayın. get_Sides ve put_Sides işlev bildirimleri PolyCtl.h'ye eklendi. Şimdi ve put_Sides kodunu get_Sides aşağıdakilerle PolyCtl.cpp ekleyin:

    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"));
       }
    }
    

yöntemi, get_Sides işaretçi aracılığıyla pVal özelliğin Sides geçerli değerini döndürür. yönteminde put_Sides kod, kullanıcının özelliğini kabul edilebilir bir değere ayarlamasını Sides sağlar. En düşük değer 3 olmalıdır ve her taraf için bir nokta dizisi kullanılacağından, maksimum değer için 100 makul bir sınırdır.

Artık adlı Sidesbir özelliğiniz var. Sonraki adımda, çizim kodunu kullanacak şekilde değiştireceksiniz.

2 | . Adıma Geri Dön- 4. Adım

Ayrıca bkz.

Öğretici