在创建了最简答的MFC程序后,下面就是将框架类和App类分离,使用2010的MFC类创建向导创建框架类生成代码,如下
#pragma once
// CBridgeWindow 框架
class CBridgeWindow : public CFrameWnd
{
DECLARE_DYNCREATE(CBridgeWindow)
protected:
CBridgeWindow(); // 动态创建所使用的受保护的构造函数
virtual ~CBridgeWindow();
protected:
DECLARE_MESSAGE_MAP()
};
|
注意此时CBridgeWindow的构造函数是protected的,也就是我没在应用程序类里面直接使用new CBridgeWindow是无法创建成功的,这就需要MFC的动态创建特性,注意要动态创建的类里面必须有
DECLARE_DYNCREATE(CBridgeWindow)宏定义
,并且在其实现文件里面有IMPLEMENT_DYNCREATE(CBridgeWindow, CFrameWnd)宏定义,这样该类才能支持动态创建
virtual BOOL InitInstance()
{
CRuntimeClass* pRuntimeClass = RUNTIME_CLASS(CBridgeWindow);
//CBridgeWindow必须有一个缺省构造函数
CObject* pObject = pRuntimeClass->CreateObject();
//用IsKindOf检测是否是CBridgeWindow类的实例
ASSERT(pObject->IsKindOf(RUNTIME_CLASS(CBridgeWindow)));
m_pMainWnd =(CWnd *) pObject;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
|
阅读(1690) | 评论(0) | 转发(0) |