【初心者歓迎】C/C++室 Ver.59【環境依存OK】at TECH
【初心者歓迎】C/C++室 Ver.59【環境依存OK】 - 暇つぶし2ch923:デフォルトの名無しさん
08/04/23 07:18:54
>>919

void CtimerDlg::OnBnClickedButton2()
{
  // new msgdlg() → msgdlgのインスタンスをヒープに確保。
  //
  // msgdlg aaae = ... → msgdlgのインスタンスをスタックに確保して、
  // msgdlg(msgdlg* ptr)に適合するコンストラクタで初期化。(※1)
  msgdlg aaae = new msgdlg();

  ...

  // 自動変数のaaaeがスコープから外れるのでデストラクタが呼ばれ、
  // aaaaが保持していたウィンドウなどが削除される。
  //
  // (※1)のポインタptrをdeleteしていなければメモリリーク。
}

が理解出来ていないように見える。

作りたいのがモーダルダイアログなら、
{
  msgdlg aaae;
  aaae.Create(IDD_DIALOG1, this);
  aaaa.DoModal();
}

関数を抜けてもmsgdlgを保持するなら、
グローバルでなくCtimerDlgのメンバにする。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch