サブクラス化が(クラスの継承に加えて)何故必要なのかわかりません。

例えばCEdit内で右クリックを無効にしたいとします。
この時、CEditを継承した新クラス作って、右クリックイベントのハンドラを
何もしない関数に置き換え、このクラスでエディットボックス作るだけで問題解決
な気がするのですが、違うのでしょうか?

実際、ダイアログにそのコントロールをSubclassDlgItemせずに貼り付けても
うまく右クリックで沈黙してくれているようでした。

というわけで、クラスの継承に加え、CWnd::SubclassXXXする意義を教えて頂けないでしょうか?