■MFC相談室 mfc19d.dll■ at TECH
[2ch|▼Menu]
740:732
08/11/30 10:13:43
>>736-737
こういう文句を言う連中は、MFCはおろかC++の基本的な仕様(派生クラスと
基本クラスのコンストラクタ/デストラクタが呼び出される順序や、仮想
関数など)さえロクに理解していないんだろうナァ。

方針なんて関係ない。強いて言えばデザインパターンってやつか?

コンストラクタでデフォルト値を代入してメンバ変数の初期化忘れを防ぐ
とか、デストラクタでメモリやハンドルの解放忘れを防ぐというのは、
基本中の基本。

インスタンスの消滅で確実にウィンドウを破棄し、なおかつ派生クラス
のOnDestroy()やPostNcDestroy()も呼び出されるようにしたければ、MFC
内部の実装に関係なく、派生クラスのオブジェクトが消滅するタイミング
でDestroyWindow()を呼び出せばいいだけ。

すなわち、自分が作るCDialog派生クラスで、デストラクタ関数を定義し、
m_hWndが有効ならDestroyWindow()を呼び出してやればいい。

class CMyDialog : public CDialog
{
  virtual ~CMyDialog();
};

CMyDialog::~CMyDialog()
{
  if(m_hWnd!=NULL)
    DestroyWindow();
}

ただそれだけのことだ。


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

4361日前に更新/186 KB
担当:undef