MFC中implement_dyncreate怎么定义
在MFC中,实现动态创建(implement_dyncreate)需要以下步骤:
- アプリケーションの stdafx.h ファイルにヘッダーファイル afxdyn.h をインクルードします。このヘッダーファイルには、動的作成の実行に使用される関連するクラスとマクロが含まれています。
- 動的作成するクラスのヘッダファイルに、IMPLEMENT_DYNCREATE マクロを宣言します。このマクロは、クラス宣言の公開セクションの最後に以下のように使用します。
class CMyClass : public CDocument
{
public:
// ...
IMPLEMENT_DYNCREATE(CMyClass, CDocument)
};
IMPLEMENT_DYNCREATEマクロでは、最初の引数は動的作成を実装するクラス名、2番目の引数はそのクラスの基底クラス名になります。
- ネイティブの日本語にパラフレーズ。1つのオプションのみで。
- 実装_DYNCREATE
IMPLEMENT_DYNCREATE(CMyClass, CDocument)
ご注意ください。
- 動的に作成されるクラスは、CObject либоから派生したクラスでなければならない。
- 多重継承を行うクラスを作成する際は、各基底クラスに対して IMPLEMENT_DYNCREATE マクロにより動的作成を実装する必要があります。
- 動的に作成されたクラスを実現するには、デフォルトコンストラクタ(引数のないコンストラクタ)が必要です。
- 動的作成されるクラスを実装するには、他のモジュールからアクセスできるように、DECLARE_DYNCREATE マクロで public として宣言する必要があります。
以上のステップを完了することで、[あなたのクラス名]は、CRuntimeClassを通じて、動的に作成できるようになりました。例えば、
CRuntimeClass* pRuntimeClass = RUNTIME_CLASS(CMyClass);
CObject* pObject = pRuntimeClass->CreateObject();
これによって、動的に作成したオブジェクトをpObjectポインターを使用して操作できるようになります。