WindowProc内でのDestroyWindow

[戻る]
ウィンウィン 2002/12/09(月) 09:34:37
別のプロセスからメッセージを受信したら、生成したモードレスダイアログを破棄するために、
WindowProc内でDestroyWindowをしています。そのままだと、returnするときに
アプリケーションエラーが発生するので、そのメッセージを受信したときは、
TRUEを返すようにすると、うまく動いているように見えます。
WindowProcの戻り値を強制的に変えても問題ないのでしょうか?
ご教授願います。

<環境>
VC6++,MFC,SDI,Windows2000

TAD [E-Mail] 2002/12/10(火) 08:14:09
ダイアログプロシージャは、デフォルトの処理をさせたいときに FALSE を返します。
自分で何らかの処理を行った場合は、TRUE を返すのが普通です。

ウィンウィンさんが何のメッセージに対して DestroyWindow を呼び出したかはわかりません
が、
メッセージに応答したということで、TRUE を返して問題ないと思います。

MSDN で、SDK の DialogProc が参考になると思います。

ウィンウィン 2002/12/10(火) 08:49:16
ありがとうございました。
DialogProcとWindowProcとは別ものですよね。
初めてDialogProcという存在を知りましたが、
ClassWizardを見ても、DialogProcっていうのがないですが。。。

sugar 2002/12/10(火) 09:28:17
MSDNに、
「DialogProc は、アプリケーション定義の関数名のプレースホルダです。」
という記述があります。

ダイアログプロシジャは「DialogProc」という名前である必要はありません。
といいますか、名前は自分で決るものなので、
ClassWizardを見てもDialogProcがないというのは、
当然といえば当然なわけですね。

ウィンウィン 2002/12/10(火) 09:50:03
[[解決]]
なるほど、ありがとうございました。
勉強になりました。

古いスレッドには追加発言できません。