超过460,000+ 应用技术资源下载
rar

深入浅出mfc(最新第二版下载-侯捷)

  • 1星
  • 日期: 2013-09-22
  • 大小: 5.27MB
  • 所需积分:1分
  • 下载次数:2
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 深入浅出mfc最新第二版下载侯捷

           深入浅出mfc(最新第二版下载-侯捷),中文版:本书分为四大篇。第一篇提出学习MFC程序设计之前的必要基础,包括Widnows程序的基本观念以及C++的高阶议题。“学前基础”是相当主观的认定,不过,甚于我个人的学习经验以及教学经验,我的挑选应该颇具说服力。第二篇介绍Visual C++整合环境开发工具。本篇只不过是提纲挈领而已,并不企图取代 Visual C++使用手册。然而对于软件使用的老手,此篇或已足以让您掌握Visual C++整合环境。工具的使用虽然谈不上学问,但在视觉化软件开发过程中扮演极重角色,切莫小觑它。第三篇介绍application framework的观念,以及MFC骨干程序,所谓骨干程序,是指Visual C++的工具AppWizard所产生出来的程序码。当然,AppWizard会根据你的选项做出不同的程序码,我所据以解说的,是大众化选项下的产品。第四篇以微软公司附于Visual C++光碟片上的一个范例程序Scribble为主轴,一步一步加上新的功能。并在其间深入介绍Runtime Type Information(RTTI)、Dynamic Creation、Persistence(Serialization)、Message Mapping、Command Routing等核心技术。这些技术正是其他书籍最缺乏的部分。此篇之最后数章则脱离Scribble程序,另成一格。你需要什么技术基础你需要什么软硬件环境让我们使用同一种语言本书符号习惯本书例程的取得范例程序说明与前版本之差异如何联络作者第一篇 勿在浮砂筑高台第1章 Win32程序基本概念Win32程序开发流程需要什么函数库(.LIB)需要什么头文件(.H)以消息为基础,以事件驱动之(message based,event driven)一个具体而微的Win32程序程序进入点WinMain窗口类之注册与窗口之诞生消息循环窗口的生命中枢:窗口函数消息映射(Message Map)的雏形对话框的运行模块定义文件(.DEF)资源描述档(.RC)Widnows程序的生与死空闲时间的处理:OnIdleConsole程序Console程序与DOS程序的差别Console程序的编译链接JBACKUP:Win32 Console程序设计MFCCON:MFC Console程序设计行程与线程(Process and Thread)核心对象一个行程的诞生与死亡产生子行程一个线程的诞生与死亡以_beginthreadex取代CreateThread线程优先级(Priority)多线程程序设计实例第2章 C++的重要性质类及其成员——谈封装(encapsulation)基类与派生类:谈继承(Inheritance)this指针虚拟函数与多态(Polymorphism)类与对象大解剖Object slicing与虚拟函数静态成员(变量与函数)C++程序的生与死:兼谈构造函数与解构函数四种不同的对象生存方式(in stack、in heap、global、local static)执行期类型信息(RTTI)动态生成(Dynamic Creation)异常处理(Exception Handling)TemplateTemplate FunctionsTemplate ClassesTemplate的编译与链接第3章 MFC六大关键技术之仿真MFC类层次结构Frame 1范例程序MFC程序的初始化过程Frame 2范例程序RTTI(执行期类型识别)类别型录网与CRuntimeClassDECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏Frame 3范例程序IsKindOf(类型识别)Frame 4范例程序Dynamic Creation(动态生成)DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE宏Frame 6范例程序Persistence(永久保存)机制Serialize(数据读写)DECLARE_SERIAL/IMPLEMENT_SERIAL宏没有范例程序Message Mapping(消息映射)Frame 7范例程序Command Routing(命令传递)Frame 8范例程序本章回顾第二篇 欲善工事先利其器第4章 Visual C++集成开发环境安装与组成四个重要的工具内务府总管:Visual C++集成开发环境关于project关于工具设定Source BrowserOnline Help调试工具VC++调试器Exception Handling程序代码产生器:AppWizard东圈西点完成MFC程序骨干威力强大的资源编辑器Icon编辑器Cursor编辑器Bitmap编辑器工具栏(Toolbar)编辑器VERSIONINFO资源编辑器字符串表格(Accelerator)编辑器菜单(Menu)编辑器加速键(Accelerator)编辑器对话框(Dialog)编辑器Console程序的项目管理第三篇 浅出MFC程序设计第5章 总观Application Framework什么是Application Framework?侯捷怎么说我怎么说别人怎么说为什么使用Application FrameworkMicrosoft Foundation Classes(MFC)白头宫女话天宝:Visual C++与MFC纵览MFCGeneral Purpose classesCObject数据处理类(collection classes)杂项类异常处理类(exception handling classes)Windows API classesApplication framework classesHigh level AbstractionsAfx全局函数MFC宏(macros)MFC数据类型(data types)第6章 MFC程序的生死因果不二法门:熟记MFC类的层次结构需要什么函数库?需要什么头文件?简化的MFC程序结构——以Hello MFC为例Hello程序程序代码MFC程序的来龙去脉(causal relations)我只借用两个类:CWinApp和CFrameWndCWinApp——取代WinMain的地位CFrameWnd——取代WndProc的地位引爆器——Application object隐晦不明的WinMainAfxWinInit——AFX内部初始化操作CWinApp::InitApplicationCMyWinApp::InitInstanceCFrameWnd::Create产生主窗口(并先注册窗口类)奇怪的窗口类名称Afx:b:14ae:6:3e8f窗口显示与更新CWinApp::Run——程序生命的活水源头把消息与处理函数连接在一起:Message Map机制来龙去脉总整理Callback函数空闲时间(idle time)的处理:OnIdleDialog与Control通用对话框(Common Dialogs)本章回顾第7章 简单而完整:MFC骨干程序不二法门:熟记MFC类层次结构MFC程序的UI新风貌Document/View支撑你的应用程序利用Visual C++工具完成Scribble step0骨干程序使用哪些MFC类?Document Template的意义Scribble的Document/View设计主窗口的诞生工具栏和状态栏的诞生(Toolbar&Status bar)鼠标拖放(Drag and Drop)消息映射(Message Map)标准菜单File/Edit/View/Window/Help对话框改用CEditView第四篇 深入MFC程序设计第8章 Document-View深入探讨为什么需要Document-View(形而上)DocumentViewDocument Frame(View Frame)Document TemplateCDocTemplate管理CDocument/CView/CFrameWndScribble Step1的Document——数据结构设计MFC Collection Classes的选用CScribbleDoc的修改文件:一连串的线条线条与坐标点Scribble Step 1的View:数据重绘与编辑CScribbleView的修改View的重绘操作:GetDocument和OnDrawClassWizard的辅佐WizardBar的辅佐Serialize:对象的档案读写Serialization以外的档案读写操作台面上的Serialize操作台面下的Serialize写档奥秘台面下的Serialize读档奥秘DYNAMIC/DYNCREATE/SERIAL三宏Serializable的必要条件CObject类IsKindOfIsSerializableCObject::SerializeCArchive类operator《和operator》效率考虑自定SERIAL宏给抽象类使用在CObList中加入CStroke以外的类Document与View交流——为Step4做准备第9章 消息映射与命令传递到底要解决什么消息分类万流归宗Command Target(CCmdTarget)三个奇怪的宏,一张巨大的网DECLARE_MESSAGE_MAP宏消息映射网的形成:BEGIN…/ON…/END…宏米诺托斯(Minotauros)与西修斯(Theseus)二万五千里长征——消息的传递直线上溯(一般Windows消息)拐弯上溯(WM_COMMAND命令消息)罗塞达碑石:AfxSig_xx的奥秘Scribble Step2:UI对象的变化改变菜单改变工具栏利用ClassWizard连接命令项识别码与命令处理函数维护UI对象状态(UPDATE_COMMAND_UI)本章回顾第10章 MFC与对话盒对话框编辑器利用ClassWizard连接对话框与其专用类对话框的消息处理函数对话框数据交换与校验(DDX&DDV)如何唤起对话框本章回顾第11章 View功能的加强与重绘效率的提高同时修改多个Views:UpdateAllViews和OnUpdate在View中定义一个hint把hint传给OnUpdate利用hint增加重绘效率可卷动的窗口:CScrollView大窗口中的小窗口:Splitter切分窗口的功能切分窗口的程序概念切分窗口的实现本章回顾第12章 打印与预览概述打印操作的后台原理MFC默认的打印机制Scribble打印机制的增强打印机的页和文件的页配置GDI绘图工具尺寸与方向:关于映射方式(坐标系统)分页页眉与页脚动态计算页码打印预览(Print Preview)本章回顾第13章 多重文件与多重显示MDI和SDI多重显示(Multiple Views)窗口的动态切分窗口的静态切分CreateStatic和CreateView窗口的静态三叉切分Graph范例程序静态切分窗口之观念整理同源子窗口CMDIFrameWnd::OnWindowNewText范例程序非标准做法的缺点多重文件新的Cocument类新的Document Template新的UI系统新文件的档案读写操作第14章 MFC多线程程序设计从操作系统层面看线程三个观念:模块、行程和线程线程优先级(Priority)线程调度(Scheduling)Thread Context从程序设计层面看线程Worker Threads和UI Threads错误观念正确态度MFC多线程程序设计探索CWinThread产生一个Worker Thread产生一个UI Thread线程的结束线程与同步控制MFC多线程程序例程第15章 定制一个AppWizard到底Wizard是什么?Custom AppWizard的基本操作剖析AppWizard ComponentsDialog Templates和Dialog classesMacrosDirectives动手修改Top Studio AppWizard利用资源编辑器修改IDD_CUSTOM1对话框画面利用ClassWizard修改IDD_CUSTOM1对话框的对应类CCustomlDlg改写OnDismiss虚拟函数,在其中定义macros修改text templateTop Studio AppWizard执行结果更多的信息第16章 站上众人的肩膀——使用Components&activeX Controls什么是Component Gallery使用ComponentsSplash screensystem Info for About DlgTip of the DayComponents实际运用:ComTest程序修改ComTest程序内容使用ActiveX ControlsActiveX Control基础观念:Properties、Methods、EventsActiveX Controls的五大使用步骤使用ActiveX Control:OcxTest程序第五篇 附录附录A 无责任书评:从摇篮到坟墓Windows的完全学习无责任书评:MFC四大天王附录B Scribble Step 5完整原始码附录C Visual C++5.0MFC范例程序一览附录D 以MFC重建DBWIN

更多简介内容

评论


个人中心

意见反馈

求资源

回顶部

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人电子

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

EEWorld下载中心——分享有价值的电子技术资料

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })