ダイアログボックスからのダイアログ作成

[戻る]
まる 2002/05/09(木) 13:34:04
お世話になっております。
ダイアログのインスタンスハンドルについてお聞きいたします。

環境 Win2000、VC++6.0 SDKです。

WinMain(引数S:hInst)からDialogBox(引数S:hInst)を作成して
メイン画面としていますが、
作成されたメインダイアログからもう一つダイアログを作成したいのです。

メインダイアログからダイアログを作成したい時、
DialogBox関数の第1引数は何のインスタンスハンドルを指定するべきなのでしょうか?
実行可能ファイルにダイアログボックステンプレートが入っているモジュールの
インスタンスハンドル(MSDNより)という意味がわかりません。

初歩的な質問で申し訳ありませんがよろしくお願い致します。

不良PG [E-Mail] 2002/05/09(木) 13:47:38
::DialogBox関数は、第二引数のlpTemplateというダイアログリソースは、どこにあるかを知
りたい訳です。

この場合は、もう一つのダイアログのダイアログリソースを持っているモジュール(おそらくメ
インダイアログと同じ)のインスタンスハンドルを指定すれば良さそうです。

まる 2002/05/09(木) 14:17:34
>不良PGさん
早速お返事いただきありがとうございます!!
DialogBox関数の第1引数の意味、とてもよくわかりました!

ダイアログリソースはメインダイアログと同じなので、
WinMainのインスタンスハンドル(hInst)を渡せばよいのですね?

しかし、ここでもう一つ質問させてください。
実装する時に、WinMainのインスタンスハンドルをメインダイアログの
ダイアログプロシージャに渡さないといけないとおもうのですが、
このような場合インスタンスハンドルをどう渡すべきなのでしょうか?
(グローバルで渡すかexternで渡すかの2通りしか思いつきません。すみません。)

お考えをお聞かせいただけると嬉しいです。
よろしくお願い致します。

Bun 2002/05/09(木) 14:27:45
>ダイアログプロシージャに渡さないといけないとおもうのですが、
>このような場合インスタンスハンドルをどう渡すべきなのでしょうか?
>(グローバルで渡すかexternで渡すかの2通りしか思いつきません。すみません。)

プロシージャに渡す引数がないわけですから、

グローバル変数かスタティック変数を使えば良いのではないでしょうか。

不良PG [E-Mail] 2002/05/09(木) 14:33:09
グローバルで問題ないと思いますが・・

どうしてもと言うなら
::DialogBoxParam
こんなのもあります

まる 2002/05/09(木) 15:08:42
[[解決]]
不良PGさん、Bunさん、ありがとうございました!

今回はグローバル変数を使うことにしました。
時間を取って、DialogBoxParamも試してみたいと思います。

ご教授いただきありがとうございました。
今後とも宜しくお願いいたします。

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