手順 3: コントロールへのプロパティの追加
IPolyCtl は、コントロールのカスタム プロパティとメソッドを含む、プロパティをそのに追加するインターフェイスです。
プロパティをプロパティの追加ウィザードを追加するには
クラス ビューで、多角形の分岐を展開します。
IPolyCtl を右クリックします。
ショートカット メニューのをクリック 追加は、を **[プロパティの追加]**をクリックします。
プロパティの追加ウィザードが表示されます。
プロパティ型のドロップダウン リストで、を選択 SHORT。
***** プロパティ名。*****として型 [側面]
プロパティの追加が終了をクリック [完了]。
インターフェイスにプロパティを追加すると、.idl ファイルをコンパイル MIDL (プログラム) は値を取得するための Get のメソッドと新しい値を設定するための Put のメソッドを定義します。メソッドは、プロパティ名の put_ と get_ の追加によって示されます。
プロパティの追加ウィザードは、.idl ファイルに必要な行を追加します。また、PolyCtl.h のクラス定義に Get と Put の関数プロトタイプを追加し、PolyCtl.cpp に空の実装を追加します。PolyCtl.cpp を開き、関数 get_Sides と put_Sidesを検索することによってこれをチェックできます。
これでプロパティを設定および取得するスケルトン関数がある場所が格納されていることが必要です。プロパティを格納し、関数を適宜更新する変数を作成します。
変数をプロパティを格納し、設定された更新し、メソッドを取得するために作成するには
ソリューション エクスプローラーで、開いている PolyCtl.h は m_clrFillColorの定義の後に、次のコードを追加し、:
short m_nSides;
m_nSidesの既定値を指定します。PolyCtl.h のコンストラクターに行を追加すると、既定の図形に三角形をする:
m_nSides = 3;
Get メソッドと Put メソッドを実装します。get_Sides と put_Sides の関数の宣言は PolyCtl.h に追加されました。次のコードで get_Sides の PolyCtl.cpp と 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というプロパティがあります。次の手順では、を使用するように描画コードを変更します。