更新 : 2011 年 1 月
IPolyCtl は、コントロールのカスタム メソッドとカスタム プロパティから成るインターフェイスです。このインターフェイスにプロパティを追加します。
プロパティの追加ウィザードを使ってプロパティを追加するには
クラス ビューでは、多角形を展開します。
IPolyCtl を右クリックします。
ショートカット メニューの [追加] をポイントし、[プロパティの追加] をクリックします。
プロパティの追加ウィザードが表示されます。
プロパティの種類のボックスの一覧を選択SHORT。
型サイド として、 プロパティ名。
クリックしてを完了プロパティの追加を完了します。
インターフェイスにプロパティを追加すると、.idl ファイルをコンパイルするプログラムである Microsoft インターフェイス定義言語 (MIDL: Microsoft Interface Definition Language) によって、プロパティ値を取得する Get メソッドと新しい値を設定する Put メソッドが定義されます。 メソッド名は、プロパティ名の前に put_ または get_ を付けた名前になります。
プロパティの追加ウィザードにより、必要な行が .idl ファイルに追加されます。 また、プロパティの追加ウィザードは、PolyCtl.h のクラス定義に Get 関数と Put 関数のプロトタイプを追加し、PolyCtl.cpp に空の実装も追加します。 PolyCtl.cpp を開くと、get_Sides 関数と put_Sides 関数が見つかります。これによって、空の実装の追加を確認できます。
これで、プロパティの設定と取得を行うスケルトン関数は完成しましたが、プロパティを格納する場所が必要です。 プロパティを格納する変数を作成し、関数を更新します。
プロパティを格納する変数を作成し、put メソッドと get メソッドを更新するには
ソリューション エクスプローラーで PolyCtl.h を開き、m_clrFillColor の定義の後に次の行を追加します。
short m_nSides;
m_nSides の既定値を設定します。 三角形を既定の形にするために、PolyCtl.h のコンストラクターに次の行を追加します。
m_nSides = 3;
Get メソッドと Put メソッドを実装します。 PolyCtl.h に get_Sides 関数と put_Sides 関数の宣言が追加されています。 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 というプロパティが完成しました。 次の手順では、Sides プロパティを使用できるように描画コードを変更します。
参照
参照
ATL チュートリアル: Web ページ内の ActiveX コントロール
履歴の変更
日付 |
History |
理由 |
---|---|---|
2011 年 1 月 |
精度を更新します。 |
カスタマー フィードバック |