共用方式為


步驟 3:將屬性加入至控制項

IPolyCtl 是包含控制項的自訂方法和屬性的介面,然後,您會將屬性加入至其中。

使用加入屬性精靈,將屬性

  1. 在 [類別檢視] 中,展開多邊形分支。

  2. 以滑鼠右鍵按一下 IPolyCtl。

  3. 在捷徑功能表上,按一下 [新增],然後按一下 [加入屬性]。

    加入屬性精靈] 隨即出現。

  4. 在屬性型別下拉式清單中,選取 SHORT。

  5. 輸入 邊界 做為 [屬性名稱。]

  6. 按一下 完成的 [完成] 加入屬性。

當您將屬性加入至 .idl 檔編譯) 的介面, MIDL (程式定義擷取其值的 Get 方法和設定新的值。 Put 方法。方法會透過加上 put_get_ 命名的屬性名稱。

加入屬性精靈會將需要的程式碼行加入至 .idl 檔。它也會將 GetPut 函式原型加入至 PolyCtl.h 的類別定義並加入空白實作加入至 PolyCtl.cpp。您可以開啟 PolyCtl.cpp 和搜尋函式則會檢查這個 get_Sidesput_Sides

雖然您現在有擷取最基本的函式會設定和屬性,需要位置來儲存它。您會建立變數以儲存屬性和據以更新函式。

建立變數以儲存屬性和更新放置和取得方法

  1. 從 [方案總管] 中,開啟 PolyCtl.h 和在 m_clrFillColor的定義之後加入下列程式碼:

    short m_nSides;
    
  2. 設定預設值 m_nSides。藉由加入行進行預設圖案三角形至 PolyCtl.h 的建構函式:

    m_nSides = 3;
    
  3. 實作 GetPut 方法。get_Sidesput_Sides 函式宣告加入至 PolyCtl.h。使用下列程式碼取代 PolyCtl.cpp get_Sides 的和 put_Sides 的程式碼:

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

get_Sides 方法傳遞 pVal 指標傳回 Sides 屬性目前的值。在 put_Sides 方法中,程式碼會確保使用者設定 Sides 屬性設定為可接受值。最少必須是介於 2 和,因為點陣列的每一邊將使用, 100 是最大值的合理的限制。

您現在有一個名為 Sides的屬性。在下一個步驟中,您將變更繪圖程式碼使用。

回到步驟 2 | 在 [步驟 4

請參閱

參考

ATL 教學課程