1

ButtonBase ではなく Control から継承するボタンの基本クラスを作成しています。
私はリフレクターを使用して ButtonBase を調べ、重要なものを見落とさないようにしています。WndProc メソッドの内容に困惑しています。
ボタンアップ、クリック、キャプチャの変更などのチェックがあり、私が知る限り、これらはすべてクラスの関連する 'On' メソッド内で処理されます。

なぜ彼らがそこにいるのか誰か知っていますか?

4

1 に答える 1

1

これは、ネイティブのWindowsボタンコントロールのラッパーでもあります。一言で言えば:

  • 0x00f5 = BM_CLICK:OnClick()を実行します
  • 0x2111 = BN_CLICKED通知:OnClick()を実行します
  • OwnerDrawに対処するための一連の回避策。

ネイティブボタンをラップしたり、所有者が描画したりする必要がないため、これについて心配する必要はありません。EnterキーとEscapeキーが押され、フォームのAccept / CancelButtonとして選択されたときにボタンが正しく動作するように、IButtonControlを実装していることを確認してください。厳密には必要ありませんが、ControlではなくButtonBaseから継承すると自動的に行われます。

于 2010-08-03T19:00:40.530 に答える