リソース含むクラスをDLL化してライブラリとして使う

[戻る]
ちあき [E-Mail] 2009/12/04(金) 17:14:52
毎度お世話になります。

環境: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のようにしたいのですが、よろしくご教授お願いします。

分かり辛い文章になってしまいすいません。

bun 2009/12/04(金) 17:39:57
確かにちょっと分かりづらいです。
が、たぶん、言いたいことは分かった気がします(汗)

  CxxxDlg  dlg(呼び出し元アプリのCWnd*);
  dlg.DoModal();

でどうでしょう。

ちあき [E-Mail] 2009/12/04(金) 18:06:40
[[解決]]
早速のご回答ありがとうございました。
サクッと解決してしまいました。
お手数おかけしました。
ありがとうございました。

今日1日悩んでおりました、頭を冷やして自己反省です・・。

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