DLL内での画面表示について

解決


ちこ  2005-08-05 20:38:12  No: 58550

VC6.0 で作成しています。
他のDLLから別のDLL内の関数コールで、ピクチャボックスのハンドルを引数で受け取り、それを元にDLL内でダイアログベースの画面を表示させたいのですが、呼ばれた関数では、具体的にどのような手順で表示させるのでしょうか?
誰か分かる方、教えて下さい。


てつや  2005-08-06 02:57:32  No: 58551

>他のDLLから別のDLL内の関数コールで、ピクチャボックスのハンドルを引数で受
>け取り、それを元にDLL内でダイアログベースの画面を表示させたいのですが、

ダイアログの子ウィンドウであるビクチャボックスを他から受け取るのは
感心しません。
そもそもそのピクチャボックスの親はどうやって指定しているのでしょう。

せめてHBITMAPをDLLから受け取り、ダイアログの配下にあるピクチャボックスに
表示するのが筋のような。

人それぞれかもしれませんが...


ちこ  2005-08-06 07:53:57  No: 58552

有難う御座います。
この方法は、関数で呼ばれたDLLで、画面を表示する一般的な方法ではないのでしょうか?
メイン画面にあるスペースに、DLLで持っている画面を表示したいのですが、
その表示タイミングは、メイン画面側で管理している為、表示する為に必要な
ハンドルをDLL関数に渡しているのですが、、
上記が実現できれば、渡すハンドルはピクチャボックスでなくても良いのですが。。
何かあれば、ご教授下さい。


dairygoods  2005-08-06 22:30:00  No: 58553

DLLが画像を表示する独自コントロールを提供するのがよいのでは。

MFC使用なら、拡張DLLを作り、CStaticを派生したクラスを作成し、
そのクラスをエクスポートすると、
EXE側からは、MFCの他のクラスと同様に扱えます。

MFC未使用なら、HWNDをDLLに渡すのでなく、
DLLがHWNDを生成してEXEに渡すことになります。


ちこ  2005-08-08 18:53:10  No: 58554

有難うございました。
参考にさせて頂き、DLL側で提供出来るクラスで対応する様にしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加