• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ダイアログ表示後に1回だけ実行)

ダイアログベースのプログラムでメッセージボックスを表示する方法

このQ&Aのポイント
  • ダイアログが表示される直後にメッセージボックスを表示する方法について教えてください。
  • プログラム中でダイアログを表示した後にメッセージボックスが表示されるタイミングを調整したいです。
  • C言語のダイアログベースのプログラムで、ダイアログが表示された直後に1回だけメッセージボックスを表示する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • skp026
  • ベストアンサー率45% (1010/2238)
回答No.2

WM_INITDIALOGは、 表示される前に来るメッセージなので、 動作としては正しいです。 プログラムの可読性が低くなるかもしれないですが、 最初のセットフォーカスやアクティブだとか、 ダイアログ内のコントロールのメッセージを使うとか、 というやりかたです。 いずれにしても、1回だけ行うためのロジックは、 自作する必要があります。 (フォーカス系でメッセージボックスは問題ありか?) またはメッセージボックスは使わないで、 ダイアログ内のコントロールを、 一時的に変えるってやりかたもあります。 あ。 WM_INITDIALOGで、ユーザー定義のメッセージを自分になげて、 そのなかでやればいいかな? ま、いろいろ試してみてください。

nazoda
質問者

お礼

回答ありがとうございました。ユーザー定義のメッセージでの方法はよく分からなかったので、別な方法を考えていろいろやってみた結果WM_PAINTの中でメッセージボックスを表示する方法でできました。

その他の回答 (1)

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

処理はプログラムを順に動作するとは限らないのです。 といったら語弊が出ますが、 Cは詳しくないですが、出力系は表示されてから次の処理に行くことはないのです。 画面表示の司令を出したら即、次の処理に移ります。 なので先に出したはずの表示が後からになることがあります。 制御したければ画面に表示されたことを確認してから次に進むように 改造せねばなりません。 私はそのロジックはわかりませんので、調べてわからなければ、 https://teratail.com/ にでも聞いてください。 サイトは「C DialogBox」でググってみてください。

nazoda
質問者

お礼

回答ありがとうございました。

関連するQ&A