いつもお世話になっています。
また行き詰まってしまったので、みなさんの知恵を貸してください。
こんな感じで、
メインのメニューバーから、ダイアログ1を呼びます。
ダイアログ1からさらにダイアログ2をよびます。
ダイアログ2で、OKボタンを押されると、メインのウィンドウを再描画させたいのですが
どうしたらよいのでしょうか?
ふつうにInvalidate()をしても、dlg1の最描画をしている(?)ようで、ダイアログ1を
消すまでOnDrawが走りません。
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄|
| メイン |==> |dlg1|==> |dlg2|
| | | ok | | ok |
| | |____| |____|
|_______|<===============∥再描画
なにかいい方法はないでしょうか。教えてください。
よろしくお願いします。
CDocument::UpdateAllViewsが使えるかな?
> CDocument::UpdateAllViewsが使えるかな?
...どぉでしょう。
Modal-dialogがイベントループを捕まえて離さないってこっちゃないかしら。
# UpdateWindow だとどうかな。自信ナシ。
単純に AfxGetMainWnd()->Invalidate() とかでいいような気もします。
(ビューのポインタが簡単に得られるなら、そいつに対して Invalidate すればいいですが)
# dlg1 や dlg2 のメンバ関数内に Invalidate(); とだけ書いたのなら、
# メインウィンドウが再描画されないのはあたりまえなわけで。
いろいろな意見ありがとうございました。
kazumaさんの方法で、再描画することができました!
しかし、メモリリーク(?)しているのでしょうか。
ときどき、再描画しても絵が消えてしまいます。
再起動して、起動しなおすと動作事態はうまくいってたので、
この質問に関しては終わりにします(^^;
ありがとうございました。