ウィンドウプロシージャでWM_CLOSEメッセージが送られてきたら
MessageBoxを出して本当に終了するかどうかを促す実装をしているのですが、
それだけのプログラムをクラスとか一切使わず作るとうまくいくのですが、
自前のウィンドウプロシージャクラスを使うとメッセージボックスは表示されません。
しかし、エンターキーを押すと、デフォルトのOKが押されて終了してくれます。

クラスの中では、WM_CLOSEメッセージの時にはOnClose関数に飛ぶようにしているだけで、
特に変なことはしてないつもりです。

検索してみても分からなかったので、ここで質問させてもらいました。
同じような現象になったことある方や、意見がある方は回答をお願いします。
条件が曖昧ですがよろしくお願いします。

環境:Visual C++.NET 2003, WinXP(SP1)