3

私は現在、MFC アプリケーションのダイアログに取り組んでいますが、MFC についてはまったくの初心者です。

Aクラス(から派生CDialog)を使用するクラスB(から派生)があるとしましょうCDialog。したがって、のメソッドをA::OnInitDialog()呼び出します。create(...)B

クラスBのデストラクタに含まれていることがわかりました

if ( GetSafeHwnd() )
{
    DestroyWindow();
}

これでいいですか?私の理解では、BDestroyWindow()メソッドを で呼び出す方がよいでしょうA::OnDestroy()。そうですか?

ご協力いただきありがとうございます!
オリバー

4

1 に答える 1

3

MFCを詳しく調べたときに気付いたかもしれませんが、これはラッパーAPIであり、厳密にはオブジェクト指向ではありません。RAII(Resource Acquisition Is Initialization)を使用したいのに対し、MFCはコンストラクターにウィンドウを作成しません。あなたが正しく指摘するように、それはCreate()方法を通してそれをします。

Bしたがって、MFCの動作方法を考えると、破壊されているときAに破壊すること( )の方が理にかなっているA::OnDestroyので、正しい道を進んでいると思います。

于 2011-07-06T07:43:54.307 に答える