VCのDLL内から画面を表示する方法をご存知の方
教えてください。
「画面を表示」とはどういうことですか?
もっと具体的に書いてください。
MFC AppWizard(dll)でDLLを作成し、その中でダイアログボックスを
表示させる時の、宣言方法を教えてください。
こんにちわ。ひまわりさん。
DLL単体ではハンドルを持っていないため、ダイアログの表示は
出来なかったと思います。
方法としてはアプリからDLLの関数をCallするときに、
(DLL関数の)引数にアプリのハンドルをセットするようにします。
あとはそのハンドルを使ってダイアログを表示するようにすれば
いいと思います。
DllMain()の第一引数を使ってダイアログを作ることはできるのでは
つまりアプリからハンドル送らなくても行ける気が・・・
HANDLE _handle
BOOL DllMain(HANDLE handle....)
_handle=handle
...
hwnd=CreateDialog((HINSTANCE)_handle,(LPCSTR)DLG_M,NULL,(DLGPROC)Prco)
なんか見当違いのこといってたらすみませんです。
AfxGetInstanceHandleでDLLのインスタンスハンドルを取得して,
AfxSetResourceHandleで利用するリソースハンドルを指定します。
あとは普通にダイアログを使えばできる……はずです。
DLLMainでDLLのインスタンスをグローバル変数にでも
格納すれば、簡単に出来ます。
ツイート | ![]() |