- 0
- 0
- 约1.93万字
- 约 26页
- 2022-10-16 发布于山东
- 举报
精品文档
MFC框架主线构造解析
MFC就把有着相当固定行为的WinMain内部动作包装在CWinApp中,把有着相当固定行为的
WndProc内部动作包装在CFrameWnd中。
也就是说:
CWinApp代表程序本体
■CFrameWnd代表一个主框窗口(FrameWindow)
但虽然我说,WinMain内部动作和WndProc内部动作都有着相当程度的固定行为,它们毕竟需要面
对不同应用程序而有某种变化。所以,你必须以这两个种类为基础,衍生自己的种类,并改写其中一部份成员函数。
classCMyWinApp:publicCWinApp
{
...
精品文档
精品文档
};
classCMyFrameWnd:publicCFrameWnd
{
...
};
本章对衍生类其他命名规则是:在基础类又名称的前面加上My。
CWinApp-取代WinMain的地位
CWinApp的衍生对象被称为applicationobject,可以想见,CWinApp本身就代表一个程式本体。以下
是MFC4.x的CWinApp声明(节录自AFXWIN.H):
classCWinApp:publicCWinThread
{
Attributes
Startupargs(donotchange)HINSTANCEm_hInstance;HINSTANCEm_hPrevInstance;LPTSTRm_lpCmdLine;
intm_nCmdShow;
//Runningargs(canbechangedinInitInstance)
CWnd*m_pMainWnd;//mainwindow(optional)
LPCTSTRm_pszAppName;//humanreadablenameLPCTSTRm_pszRegistryKey;//usedforregistryentries
public://setinconstructortooverridedefault
LPCTSTRm_pszExeName;//executablename(nospaces)
LPCTSTRm_pszHelpFilePath;//defaultbasedonmodulepath
LPCTSTRm_pszProfileName;//defaultbasedonappname
public:
hooksforyourinitializationcodevirtualBOOLInitApplication( );
overridesforimplementationvirtualBOOLInitInstance( );virtualintExitInstance( );
virtualintRun( );
virtualBOOLOnIdle(LONGlCount);
...
}
几乎可以说CWinApp用来取代WinMain在SDK程序中的地位。这并不是说MFC程序没有WinMain
(稍后我会解释),而是说传统上SDK程序的WinMain所完成的工作现在由CWinApp的三个函数完成:
virtualBOOLInitApplication( );
virtualBOOLInitInstance( );
精品文档
精品文档
virtualintRun( );
WinMain只是扮演役使它们的角色。
但从MFC4.x开始,m_pMainWnd已经被移往CWinThread中了(它是CWinApp的父种类)。以下内容节录自MFC4.x的AFXWIN.H:
classCWinThread:publicCCmdTarget
{
//Attributes
mainwindow(usuallysameAfxGetApp( )-m_pMainCWnd*m_pMainWnd;
CWnd*m_pActiveWnd;//activemainwindow(maynotbem_pMainWnd)
//onlyvalidwhilerunning
HANDLEm_hThread;//thisthreadsHANDLE
DWORDm_nThreadID;//thisthreadsID
intGetThreadPriority( );
BOOLSetThreadPriority(intnPriority);
//Operations
DWORDSuspendThread( );
DWORDResumeThread( );
Overridables
threadinitializationvirtualBOOLInitInstance( );
runningandidleprocessing
virtualintRun( );
virtualBOOLPreTranslateMessage(MSG*pMs
您可能关注的文档
最近下载
- 安全文明措施费使用台账.docx VIP
- 西南科技大学成人本科毕业设计(论文)模板(理科、农学)(2023年).docx VIP
- 编导统考笔试试题及答案.doc VIP
- 语文高职单招考试模拟试卷(2篇).docx VIP
- 单招考试四类职业技能试题及答案说课讲解.docx
- 2026-2030中国MLCC用氧化镁市场深度调查与发展前景预测研究报告.docx
- 纯电动汽车动力电池箱结构设计及有限元分析.docx VIP
- 2025年AWS认证Route53健康检查的IoT设备状态监控专题试卷及解析.pdf VIP
- 2025年演出经纪人网络直播演出内容审核标准专题试卷及解析.pdf VIP
- 西南18J516(完整版本).pdf VIP
原创力文档

文档评论(0)