モーダルメッセージが表示されたら、処理を開始するには?

解決


マックス  2005-08-23 20:12:34  No: 58725  IP: 192.*.*.*

モーダルダイアログを使ったものを作っています。
  モーダルダイアログを表示されたら、処理を開始するようにしたいのですが、方法が思いつきません。
  「ダイアログを表示しきった」というような、メッセージはないのでしょうか?
  わかる方がいましたら、教えてください。おねがいします。

編集 削除
マックス  2005-08-23 22:57:27  No: 58726  IP: 192.*.*.*

すいません。題名がおかしくなってました。
  正しくは、「モーダルダイアログボックスが表示されたら、処理を開始するには?」です。

編集 削除
RAPT  2005-08-23 23:50:47  No: 58727  IP: 192.*.*.*

WM_SHOWWINDOW かな。試してないけど。
フラグと併用すればできそう。

表示する前でよければ、WM_INITDIALOGがありますが。

編集 削除
マックス  2005-08-24 00:08:57  No: 58728  IP: 192.*.*.*

RAPTさん、返信ありがとうございます。
WM_SHOWWINDOWを、試してみましたがウィンドウ表示前に呼ばれてしまいます。うまくすれば、できるものなのでしょうか?

やりたいことは、モーダルダイアログボックスが表示されたら処理を開始して、プログレスバーがたまったらボタンを押してそのダイアログボックスを消すというような、解凍ソフトなどのような動作をさせたいのです。

編集 削除
RAPT  2005-08-24 00:31:55  No: 58729  IP: 192.*.*.*

それなら普通に WM_INITDIALOG の最後辺りで呼んであげればいいのでは?
プログレスコントロールを処理するならタイマーを使うと楽です。

あと確か、ダイアログ生成時には、WM_SIZE も飛んできたような気がします。

タイマーで監視するなら、IsWindowVisible()なんかで確認できそうです。

編集 削除
マックス  2005-08-24 00:51:11  No: 58730  IP: 192.*.*.*

RAPTさん、返信ありがとうございます。

タイマーを使って処理してみたら、うまくいくことができました。
ほんとうに、ありがとうございました。

編集 削除
マックス  2005-08-24 02:04:10  No: 58731  IP: 192.*.*.*

解決チェックをいれわすれていました。
ありがとうございました。

編集 削除