• ベストアンサー

親ウインドウのウインドウハンドルの必要性について

お願いします。 WIN98 VC++6.0 SDKにて ウインドウをクリックするとダイアログボックスが表示されるサンプルプログラムがあります。 MessageBox(hWnd, s, "ダブルクリック", MB_OK);の第1引数には親ウインドウのウインドウハンドルを指定するとありましたが、NULLに変えても問題無く動きました。 第1引数はなんでも良いのでしょうか? また、必ず親ウインドウのウインドウハンドルを指定しなければならない時はどのような場合でしょうか? よろしくお願いします。

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

  • ベストアンサー
  • gimmick
  • ベストアンサー率49% (134/270)
回答No.2

それでは、第1引数にウィンドウハンドルを指定して、メッセージボックスを表示してください。そして、メッセージボックスの表示中に、第1引数で指定したウィンドウの操作を試みてください。おそらく操作できないはずです。このような状況にしたい場合にオーナーウィンドウを指定します。

VitaminBB
質問者

お礼

回答ありがとうございます。 おっしゃる内容確認できました。 これで必要性が良く分かりました。

その他の回答 (2)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

>NULLに変えても問題無く動きました。 問題あって動いてます。 ボタンクリック時などに警告メッセージボックスを表示させるときに NULLにしてしまうと、何度でも押せてしまうので、メッセージボックスが複数出てくる状態になります。 本来、メッセージボックスを表示するときは、親ウィンドウはロックされるべきです。

VitaminBB
質問者

お礼

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

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

まったくプログラミングについては素人なので間違っていたらご容赦を。でも、調べたないようは、合ってると思います・・。 第1引数にNULLをいれると、オーナーハンドルを意味するようですよ。VCは使ったことないですが、ヘルプ付いてないんですね。不便ですよね? http://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_messagebox.htm >第1引数はなんでも良いのでしょうか? 上のURLをみるとばっちり書いてます。 > また、必ず親ウインドウのウインドウハンドルを指定しなければならない時はどのような場合でしょうか? プログラミングの経験がなく、コメントできません。すいません。親ウィンドウのメッセージとして表示したいときってどんなときかな~?子ウィンドウがない場合は、どうしたってオーナーウィンドウは、親ですよね?それじゃ~回答になりませんね。失礼しました。

VitaminBB
質問者

お礼

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