毎度お世話になります。
環境:WinXP SP3 VS2005 C++ MFC SDI
リソース(主にDialog)を含むクラスを使い回したく DLL にして使用しているのです
が、関数の呼び出し元によって DLL のWindowの表示状態(?)が変わってしまいます。
DLL は CxxApp:: から AfxMessageBox() や CDialog::DoModal() するだけです。
DLL の関数を呼び出す SDI のアプリの呼び出し元が CxxView:: や CxxFrame:: から
の時は期待通り(アプリ側がdisable状態になる)の状態(状態A)になるのですが、
アプリの CDialog:: 上から呼び出すと、Windows(OS)画面のタスバーに呼び出し元
アプリとは別に最小化アイコン(?名称がわからないです)が出てしまい、Parent の
関係が無いような Window 表示(状態B)になってしまいます。
DLL 側でダイアログの実装時に SetParent 等をしてみましたが変化ありませんでした。
CxxApp::a()
{
CxxxDlg dlg;
dlg.SetParent(呼び出し元アプリのCWnd*);
dlg.DoModal();
}
状態Bを状態Aのようにしたいのですが、よろしくご教授お願いします。
分かり辛い文章になってしまいすいません。
確かにちょっと分かりづらいです。
が、たぶん、言いたいことは分かった気がします(汗)
CxxxDlg dlg(呼び出し元アプリのCWnd*);
dlg.DoModal();
でどうでしょう。
早速のご回答ありがとうございました。
サクッと解決してしまいました。
お手数おかけしました。
ありがとうございました。
今日1日悩んでおりました、頭を冷やして自己反省です・・。