2

からカスタム コントロールを派生させATL::CWindowImpl<CMyCustomControl>、宣言しDECLARE_WND_CLASS(_T("CMyCustomControl"))ました。

クラス名が のカスタム コントロールを持つダイアログ リソースも作成しましたCMyCustomControl

ダイアログに表示できるように、コントロールを適切に登録するにはどうすればよいですか?

4

1 に答える 1

2

WTL でカスタム コントロールを作成する一般的な方法は 3 つあります。

  1. DECLARE_WND_CLASS/ DECLARE_WND_SUPERCLASS+RegisterClassEx名前でクラスを登録する API + クラス名でコントロールをインスタンス化するダイアログ テンプレートのカスタム コントロール参照
  2. ウィンドウクラスを実装します。から継承しCWindowImpl、手動でコントロールを作成します。からOnCreate/OnInitDialog
  3. ウィンドウ クラスを実装し、ダイアログ テンプレートを使用して標準コントロールをインスタンス化し、コントロール インスタンスをサブクラス化してその動作を変更します (例: ハイパーリンクを使用した静的、カスタム リスト ビュー、カラー ハイライトを使用した編集コントロールなど)。

3 つすべてを使用すると、クラス定義で単なるマクロ以上のことを行う必要があります。http://www.viksoe.dk/code/all_wtl.htmの "Controls" セクションにすばらしい例があります。

確かに、4 番目の方法は ActiveX コントロールを実装しています。

于 2012-04-11T19:40:45.667 に答える