目录
|
第0章 你一定要知道(导读)
0.1 这本书适合谁 0.2 你需要什么技术基础 0.3 你需要什么样的软硬件环境 0.4 让我们使用同一种语言 0.5 本书符号习惯 0.6 碟片内容与安装 0.7 范例程序说明 0.8 如何与作者联系 0.9 与前版本之差异
第一篇 勿在浮砂筑高台——本书技术前提
第1章 Win 32程序基本概念
1.1 Win 32程序开发流程 1.2 需要什么函数库(.LIB) 1.3 需要什么头文件(.H) 1.4 以信息为基础,以事件驱动之 1.5 一个具体而微的Win 32程序 · · · · · ·
第0章 你一定要知道(导读)
0.1 这本书适合谁 0.2 你需要什么技术基础 0.3 你需要什么样的软硬件环境 0.4 让我们使用同一种语言 0.5 本书符号习惯 0.6 碟片内容与安装 0.7 范例程序说明 0.8 如何与作者联系 0.9 与前版本之差异
第一篇 勿在浮砂筑高台——本书技术前提
第1章 Win 32程序基本概念
1.1 Win 32程序开发流程 1.2 需要什么函数库(.LIB) 1.3 需要什么头文件(.H) 1.4 以信息为基础,以事件驱动之 1.5 一个具体而微的Win 32程序
程序入口WinMain 窗口类的注册与窗口的诞生 信息循环 窗口的生命中枢——窗口函数 信息映射(Message Map)的雏形 对话框的运用 模块定义文件(.DEF) 资源定义文件(.RC)
1.6 Windows程序的生与死 1.7 闲置时间的处理:OnIdle 1.8 进程与线程(Process and Thread)
核必对象 一个进程的诞生与死亡 产生子进程 一个线程的诞生与死亡 线程的优先权(Priority)
第2章 C++的重要性质
2.1 类及其成员——谈封装(encapsulation) 2.2 基类与派生类——谈继承(Inheritance) 2.3 this指针 2.4 虚函数与多态性(Polymorphism)
从薪水说起 晴天霹雳 三个结论 虚函数与一般化 多态性(Polymorphism)
2.5 类与对象大剖析 2.6 Object slicing与虚函数 2.7 静态成员(变量与函数) 2.8 C++程序的生与死:兼谈构造函数与析构函数 2.9 动态类型识别(RTTI) 2.10 动态生成(Dynamic Cretion) 2.11 异样处理(ExceptionHanding)
Template Template Functions Template Classes Template 的编译与链接
第3章 MFC六大关键技术之仿真
3.1 MFC类的层次结构 Framel 1范例程序 3.2 MFC程序的初始化过程 Framel 2范例程序 3.3 自制RTTI(动态类型识别) 类别型录网与CRuntimeClass DECLARE-DYNAMIC/IMPLEMENT-DYNAIC宏 Framel 3范例程序 IsKindOf(类型识别) Framel 3范例程序 Framel 4范例程序 3.4 自制Dynamic Creation(动态生成) DECLARE-DYNCREATE/IMPLEMENT-DYNAIC宏 Framel 5范例程序 MFC4.0对动态生成的作法 Framel 6范例程序 3.5 自制Persistence(永久保存)机制 Serialize(数据读写) DECLARE-SERIAL/IMPLEMENT-SERIAL宏 没有范例程序 3.6 自制Messang Routing(信息传递) Framel 7范例程序 3.7 自制Messang Routing(信息传递) Framel 8范例程序
第二篇 欲善工事选利其器——Visual C++v 4.0开发工具
第4章 Visual C++ 软件集成开发环境
4.1 安装与组成 4.2 最重要的四种工具 4.3 内务部总管:Visual C++v集成开发环境 Froject 关于工具设定 Source Code Browser Online Help 调试工具 ·VC++ ·Exception Handling 4.4 程序编码生成器:AppWizard 东圈西点完成程序框架 Scribble Stepo 4.5 威力强大的资源编辑器 Icon编辑器 Cursor编辑器 Bitmap编辑器 Toolbar(工具栏)编辑器 VERSIONINFO资源编辑器 String Talbe(串资源)编辑器 Menu(菜单)编辑器 Accelerator(加速键)编辑器 Dialog(对话框)编辑器 第三篇 浅出MFC程序设计
第5章 纵观Application Framework
5.1 什么是Application Framework? 5.2 侯捷怎么说 5.3 我怎么说 5.4 别人怎么说 5.5 为什么使用Application Framework 5.6 Microsoft Foundation Classes(MFC) 5.7 白头宫女话开宝:Visual C++与MFC 5.8 纵观MFC General Purpose Classes Windows API classes High level abstractions Afx全局函数
第6章 MFC程序设计导论——MFC程序的生与死
6.1 不二法门:熟记MFC类的层次结构 6.2 需要什么函数库(.LIB)? 6.3 需要什么头文件(.H)? 6.4 简化的MFC程序结构——以上HelloMFC为例 6.5 Hello程序源代码 6.6 MFC程序的来龙去脉 我只借用两个类:CWinApp和CFrameWnd CWinApp——取代WinMain的地位 CFrameWnd——取代Wndproc的地位 引爆器——Application object 隐晦不明的WinMain AfxWinInit——AFX内部初始化操作 CWinApp::InitApplication CMyWinApp::InitInstance CFrameWnd::Create产生主窗口(并先注册窗口类) 窗口显示与更新 CWinApp::Run——程序生命的源泉 把信息与处理函数联结在一起:Message Mag 6.7 Callback函数 6.8 Dialog与Control 6.9 通用对话框(Common Dialogs) 本章回顾
第7章 简单而完整:MFC程序框架
7.1 不二法门:熟记MFC类的层次结构 7.2 MFC程序的UI新风貌 7.3 Document /View支撑你的应用程序 7.4 利用Visual C++工具完成Seribble step0 7.5 程序框架使用哪些MFC类? 7.6 Document Template的意义 7.7 Seribble的Document/View设计 7.8 主窗口的诞生 7.9 工具栏和状态栏的诞生 7.10 拖曳鼠标(Drag and Drop) 7.11 信息映射(Message Map) 7.12 标准菜单File/Edit/View/Window/Help 7.13 对话框 7.14 改用CEdit View
第四篇 深入MFC程序设计
第8章 Document-View深入探讨
8.1 为什么需要Document-View(形式上) Document View Document FRAME(View Frame) Document Tempalte CDoc Template 管理CDocument/CTiew/CFrameWnd 8.2 Scribble Step1的Document——数据结构设计 MFC Collection Classes的选用 ·Template-Based Classes ·Template-Based Classes的使用方法 CScribbleDoc 的修改 ·SCRIBBLEDOC.H(阴影表示与Step0的差异) ·SCRIBBLEDOC.CPP(阴影表示与Step0的差异) 文件:一连串的线条 ·CScribbleDoc的成员变量 ·CObList ·CScribbleDoc的成员函数 线条与坐标点 ·CStroke的成员变量 ·CArray ·CStroke的成员函数 View与用户的会话(鼠标信息处理实例) Class Winzard的帮助 8.4 Serialize:对象的文件读写 Serialization以外的文的读写 台面上的Serialize动作 台面下的Serialize写文件奥秘 台面下的Serialize读文件奥秘 8.5 DYNAMIC/DYNCREATE/SERIAL三组宏定义
8.6 Serializable的必要条件 8.7 CObject类 IsKindOf IsSerializable CObjct::Serialize 8.8 CArchive类 operator<<和operator>> 效率考虑 8.9 自定义SERIAL宏给抽象类使用 8.10 在CObList中加入CStroke以外的类 8.11 Document与View交流.为Scribble Stribble做准备
第9章 信息映射与命令路由
9.1 到底要解决什么 9.2 信息分类 9.3 万流归宗Command Target(CCmdTarget) 9.4 三个奇怪的宏,一张巨大的网 DECLARE-MESSAGE-MAP宏 信息映射网的形成:BEGIN./ON./END.宏 9.5 米诺疾托斯(Minotauros)与西修斯(Theseus) 9.6 两万五千长征——信息路由(Message Routing) 直线上溯(一般Windows信息) 拐弯上溯(WM-COMMAND命令信息) 9.7 罗塞达碑Rosetta stone 9.8 Seribble Step2:UI对象的变化 改变菜单 改变工具栏 利用Class Wizard连接命令项识别项识别码与命令处理函数 维护UI对象状态(UPDATE-COMMAND-UI) 本章回顾
第10章 MFC与对话框
10.1 对话框编辑器 10.2 利用Class Wizard连接对话框与其专属类 PENDLG.H PENDLG.CPP 10.3 多重文件与多重视图 MFC中各式各样的MAP 10.4 对话框数据交换与检查(DDX&DDV) MFC中各式各样的DDx-函数 10.5 如何使用对话框 本章回顾
第11章 View功能的加强与重绘效率的提高
11.1 同时修改多个Views-UpdateAllViews和OnUpdate 在View中定义一个hint 把hint传给OnUpdate 利用hint提高重绘效率 11.2 可滚动的窗口:CScrollView 11.3 大窗口中的小窗口:Splitter 划分窗口的功能 划分窗口的程序概念 划分窗口的实体 本章回顾
第12章 打印与预览
12.1 概述 12.2 打印动作的原理 12.3 MFC预设的打印机制 12.4 Scribble 打印制的增强 打印机的页和文件的页 配置GDI绘图工具 尺寸与方向:关于映像模式(坐标系统) 分页 表头与页尾 动态计算页码 12.5 打印预览 本章回顾
第13章 多重文件与多重视图
13.1 MDI和SDI 13.2 多重视图(Multiple Views) 13.3 窗口的动态划分 13.4 窗口的静态划分 CreatreStatic和CreateView 13.5 窗口的静态三叉划分 Graph范例程序 静态划分窗口的概念整理 13.6 同源子窗口 CMDIFrameWnd::OnWindowsNew Text范例程序 非制式作法的缺点 13.7 多重文件 新的Document类 新的Document Template 新的UI系统 新文件的文件读写操作
第五篇 附 录
附录A Seribble Step 5完整源代码 附录B Visual C++范例程序一览 附录C OWL程序设计一览
<<
显示目录详情
|
|