- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
windows的运行机制剖析
MFC程序的启动 PreCreateWindow函数的目的 就是让我们在产生窗口前有机会去修改窗口的外观。比如生成这个窗口,不想要最大化框。我们看到窗口的创建都是在MFC的底层的基类中完成的,对于我们自己的类来说,没有调用CreateWindowEx的函数去创建窗口,因此它就设计了这个参数让我们有机会去修改窗口的外观,而且定义为引用,当我们修改结构体的成员时,在基类中会有体现的。这个函数在 CreateWindowEX前被调用。CreateWindowEX函数所带的参数就是CREATESTRUCT的结构体中的成员,因此就会创建一个符合我们要求的窗口。 MFC程序的来龙去脉 程序的诞生 应用对象产生,内存于是获得配置 AfxWinMain执行AfxWinInt,进行初始化设置 AfxWinMain执行InitApplication,是个虚函数,通常不改写它 AfxWinMain执行InitInstance,是虚函数,我们改写它 在InitInstance中执行ProcessShellCommand(cmdInfo)实现窗口的注册,创建。 回到InitInstance中继续执行ShowWindow ,显示窗口 执行UpdateWindow,发出WM_PAINT消息。 回到AfxWinMain,执行Run,进入消息循环。 MFC程序的运行过程 MFC程序的来龙去脉 程序开始运行 程序获得WM_PAINT消息(Run()中的::PeekMessage) WM_PAINT经由::DispatchMessage送到窗口函数CWnd::DefWindowProc中 CWnd::DefWindowProc将消息传递给消息映射表(Message Map) 传递过程中发现有相符项目,于是调用项目中对应的函数,此函数是应用程序利用BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间的宏设立起来的。 MFC程序的来龙去脉 程序的死亡 单击【File/Close】,于是发出WM_CLOSE消息 框架并没有设置WM_CLOSE消息处理函数,于是交给默认的处理程序。 默认函数对于WM_CLOSE消息的处理方式是调用 ::DestoryWindow,并因而发出WM_DESTROY消息。 默认的WM_DESTROY处理方式是调用::PostQuitMessage,因此发出WM_QUIT消息。 CWinApp::Run收到WM_QUIT消息会结束其内部消息循环 最后回到AfxWinMain,执行AfxWinTerm,结束程序。 单文档应用程序WinGreet中使用到的类 文档模板类:直接使用,管理文档、视图和框架 文档类:负责数据结构与文件操作 应用类 框架类:主窗口 视图类:负责数据的显示与打印 状态栏和工具栏直接使用 CWinApp CDocument CView CMainFrame GetActiveView GetParentFrame 或 m_pMainWnd AfxGetApp 或 theApp GetActiveDocument AfxGetMainWnd AfxGetMainWnd GetDocument 从CView、CDocument、CMainFrame或其他类中访问应用类,用AfxGetApp 或 theApp TextOut(hDC,200,0,九九乘法表,strlen(九九乘法表)); TextOut(hDC,20,20,1*1=1,strlen(1*1=1)); TextOut(hDC,20,40,1*2=2 2*2=4,strlen(1*2=2 2*2=4)); TextOut(hDC,20,60,1*3=3 2*3=6 3*3=9,strlen(1*3=3 2*3=6 3*3=9)); TextOut(hDC,20,80,1*4=4 2*4=8 3*4=12 4*4=16,strlen(1*4=4 2*4=8 3*4=12 4*4=16)); TextOut(hDC,20,100,1*5=5 2*5=10 3*5=15 4*5=20 5*5=25,strlen(1*5=5 2*5=10 3*5=15 4*5=20 5*5=25)); TextOut(hDC,20,120,1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36,strlen(1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36)); TextOut(hDC,20,140,1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49,strlen(1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*
您可能关注的文档
- 2017届高三物理一轮复习第六章静电场第2讲电场电场强度.ppt
- 2017届高三生物第一轮复习生态工程.ppt
- 2017届高三语文二轮复习第一部分专题突破一论述类文本阅读抢分点一论述类客观题_泛读精读结合圈点比对排除.doc
- 2017届高三数学二轮复习第一篇专题通关攻略专题五立体几何1.5.2点直线平面之间的位置关系理.ppt
- 2017届高三生物二轮复习第1部分专题5第12讲.ppt
- 2017届高三语文二轮复习限时规范训练训练2.doc
- 2017届高三高考一轮“文言短文翻译题”专项强化练.doc
- 2017届高三数学二轮复习第三篇高分专项提能第二部分冲刺名校专项突破3.2.3解答题压轴题突破理.ppt
- 2017届高三生物第一轮复习育种的类型和方法.ppt
- 2017届高三语文二轮复习第一部分专题突破六语言文字运用抢分点十七语言综合表达题_灵活处理因题求法.doc
文档评论(0)