複数ダイアログの同時起動について


まっつー  2003-02-24 05:18:48  No: 51102

VC++, MFC, SDIアプリケーションから、リソースエディタで作成したCMyDialog(CDialogを継承)を同時に複数開こうとしていますが、これがうまくいきません。
以下のような関数を作ったところ、2度目の呼び出しで(1度目の呼び出しでダイアログが閉じてない状態で2度目を呼ぶ)失敗します。
CMyDialog *CMyWnd::OpenDialog()
{
  CMyDialog *pDlg = new CMyDialog();
  pDlg->Create(IDD_MYDIALOG,this); //IDD_MYDIALOGはテンプレートID
  pDlg->ShowWindow(SW_SHOW);
  return pDlg;
}

エラーメッセージはDebug Assertion Failed!で、wincore.cppの879行めだと言われます。同じテンプレートIDを使いまわしできないということなのでしょうか?うまい解決方法がありましたら、ご教授願います。


YuO  2003-02-24 06:08:44  No: 51103

Assertion Dialogに情報があると思いますし,
wincore.cppの879行目を見ればassertの原因もわかると思いますけど……。

VC++ 5.0だとwincore.cppの879行目はコメントのど真ん中……。


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

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






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