質問: 親ウィンドウのメッセージを子ウィンドウで処理する 親ウィンドウに入ってくるメッセージを子ウィンドウ(ダイアログ)のメッセージマップで処理したいと思ってますが、どうにもできません。なにかよい方法はないでしょうか? 処理したいメッセージはescが押されたかどうかだけなので、親で受けたメッセージを子供にsendmessageすればよいのですが、できれば、親で受けたメッセージすべてを子供にそのまま渡すというようなことができたらうれしいです。 atl/wtlでの書き方だともっとうれしいです。 どうぞよろしくお願いします。
回答: 親ウィンドウを弄らずに子ウィンドウでメッセージを取りたいならばhookと言う手があります。ご存知かもしれませんが、プログラムのみならずos自体にも致命的なダメージを与えかねないので注意して使用してください。 #メモリ確保などを子ウィンドウが行っていたとしても、終了の命令は(拡張時に他のウィンドウなども管理する観点から)明示的に親ウィンドウから行われるべきだと思います。メモリ開放などはそれを受けた子ウィンドウが行い、完了した旨を親ウィンドウに通知してプログラムが終了するのが通例でしょう。ただ、コメントから親ウィンドウを弄らないと言う記述があるので特殊なケースを狙ったものかもしれませんが...