译者的话
第1章 Win32中的软件开发
1.1 Microsoft Windows的演变
1.2 我们在哪里
1.3 32位编程的引入
1.4 Windows的硬件需求
1.4.1 Intel x86微处理器家族
1.4.2 消除分段限制
1.4.3 页的结构
1.4.4 后备缓冲区的转换
1.4.5 虚拟8086模式
1.5 系统信息的管理
1.6 抢先式多任务对开发的影响
1.7 Windows 3.x使用的老式多任务
1.7.1 Win32的多任务
1.7.2 多线程开发
1.8 异步输入模式
1.9 内存管理的运用
1.9.1 分页文件的检查
1.9.2 对地址空间的理解
1.9.3 预约和委托
1.9.4 异常事件的深入理解
1.10 异常处理程序的使用
1.10.1 具有潜在危险的封装代码
1.10.2 关于PAGE_GUARD
1.10.3 人存的释放
10.11 灵活运用内存
第2章 Win32开发工具
2.1 硬件组件
2.2 软件组件
2.3 开发模式和API
2.4 Win32应用程序的建立
2.4.1 Windows 95链接程序
2.4.2 模块定义文件
2.4.3 资源文件
2.4.4 头文件
2.4.5 WIN32BK.H头文件
2.5 INCLUDE示例
2.6 一段简单的C教程
2.7 关于句柄
第3章 Win32应用程序的开发
3.1 检查Win32的一个入口
3.1.1 Win32的hPrevInstance参数
3.1.2 lpCmdLind参数
3.2 mShowCmd参数
3.3 窗口类的注册
3.4 窗口的建立
3.4.1 注意一些常见的失误
3.4.2 窗口的显示
3.4.3 消息循环的实现
3.5 理解窗口进程
3.5.1 拦截和处理
3.5.2 建立开发规则
3.6 欢迎进入Win32的世界
3.7 “欢迎”的其他注意事项
3.8 注册表数据库的运用
3.9 关于里程、窗口和实例
3.10 总结
第4章 消息和重画模式
4.1 关于消息
4.1.1 消息的张贴
4.1.2 消息的发送
4.1.3 把消息发送给同一类的窗口
4.1.4 把消息发送给其他类的窗口
4.1.5 消息发送的实践
4.2 窗口和消息
4.3 限制窗口的运动
4.4 消息和抢先式多任务
4.5 API和消息
4.6 Spy和消息
4.7 重画技术
4.7.1 硬件处理
4.7.2 设备现场
4.7.3 访问显示现场
4.8 什么时候用GetDC( )
4.8.1 输出模式
4.8.2 WM_PAINT消息
4.9 背景的清除
4.9.1 屏蔽一个矩形
4.9.2 显示一些正文
第5章 资源文件
5.1 资源API
5.2 图标的载入
5.3 图标的运用
5.4 STRINGTABLE资源
5.5 一次性载入多个串
5.6 其他二进制资源
5.7 用户自定义多个串
第6章 菜单的运用
6.1 菜单项的选用
6.2 检查菜单模板
6.2.1 菜单项定义
6.2.2 MENUITEM选项
6.2.3 一个典型的MENU资源
6.2.4 载入菜单模板
6.3 与菜单的交互作用
6.4 扩展菜单
6.4.1 从头建立一个菜单
6.4.2 在运行期间修改菜单
6.4.3 一次性载入多个菜单
6.5 菜单的修改
6.5.1 缺省菜单项
6.5.2 在运行期间建立一个菜单
6.6 弹出式菜单
6.7 把位图用作菜单项
6.8 物主绘图菜单
6.9 加速键的实施
6.10 热键的实施
6.11 系统菜单
第7章 建立窗口的艺术
7.1 叠置式窗口类型
7.2 弹出式窗口类型
7.3 子窗口类型
7.3.1 子窗口的建立
7.3.2 从属:父子关系
7.4 标题栏按钮
7.5 三种窗口尝试
7.5.1 一起来聚会!版本1
7.5.2 一起来聚会!版本2
7.5.3 一起来聚会!版本3
7.6 OWNER弹出式窗口示例
7.7 窗口座标
7.8 窗口定位
7.9 窗口的重定位
7.10 一次性定位多个窗口
7.11 消息框的建立
7.11.1 定制消息框
7.11.2 语言和子语言定义
7.11.3 用按钮建立消息框
7.11.4 有趣的消息框
7.12 一次运行一个程序拷贝
7.12.1 用信号机限制拷贝
7.12.2 建立一个简单的字处理程序
7.13 标准内存的延展
第8章 Win32的对话框管理
8.1 模态和非模态对话框
8.2 对话框的建立
8.2.1 对话进程
8.2.2 从资源文件装载模板
8.3 窗口还是对话框
8.4 对话框模板
8.5 About框
8.6 通知代码
8.7 非模态对话框
8.8 对话框的收缩
8.9 通用对话框
8.10 对话框的居中显示
第9章 预定义的窗口类
9.1 控件的建立
9.1.1 关于风格
9.1.2 消息和控件
9.1.3 通知代码
9.2 列出Win32进程
9.3 六种预定义的类
9.3.1 BUTTON类
9.3.2 LISTBOX类
9.3.3 EDIT类
9.3.4 EDIT类的宏
9.3.5 COMBOBOX类
9.3.6 STATIC类
9.3.7 SCROLLBAR类
9.4 资源列举
9.5 图标的提取
9.6 MDICLIENT类
第10章 Windows 95通用控件
10.1 建立通用控件
10.2 通用风格
10.3 通知代码
10.4 通用控件探秘
10.5 图象列表
10.5.1 图象列表的管理
10.5.2 图象列表和拖放
10.6 树形视窗控件
10.6.1 插入一个新条目
10.6.2 项目标签的编辑
10.6.3 分支排序
10.6.4 消息和宏函数
10.6.5 图象列表和树形视窗
10.6.6 通知代码
10.6.7 树形视窗项目的拖动
10.6.8 算法的考虑
10.6.9 树形视窗控件的最后几点注意事项
10.7 列表视窗控件
10.7.1 列表视窗控件的建立
10.7.2 社窗的改变
10.7.3 列表视窗的消息
10.7.4 项目的比较
10.7.5 列表视窗的宏函数
10.7.6 通知代码
第11章 图形设备接口示例
11.1 MESSY示例
11.2 对象的描绘和移动
11.2.1 数据结构
11.2.2 几何形状的描绘
11.2.3 现成对象的移动
11.2.4 位图的械载入
11.2.5 源代码剖析
11.2.6 拖放位图的接收
第12章 非标准的输入和输出
12.1 键盘
12.1.1 键盘输入的控制
12.2 ANSI或ASCII
12.3 Unicode和Windows 95
12.4 鼠标
12.5 鼠标捕获
12.6 鼠标双击
12.7 左键和右键的同时单击
12.8 工具栏
12.8.1 工具栏的定制
12.8.2 工具提示
12.8.3 状态栏
12.9 动画控件
12.10 侦查其他窗口
12.11 一个多媒体CD播放器
12.11.1 PLAYCD的工作原理
12.11.2 MS Access 7.0数据库
12.12 建立一条工具提示
第13章 内存管理和DLL
13.1 关于内存页的更多问题
13.1.1 转换后备缓冲区
13.1.2 页边界
13.2 Malloc( )和C运行期库
13.3 堆管理
13.4 共享内存
13.5 数据拷贝
13.6 内存映射文件
13.6.1 在进程边界之间共享内存
13.6.2 数据文件的访问
13.6.3 内存映射文件的释放
13.6.4 关于页边界面更多的问题
13.7 虚拟内存、物理内存和页文件
13.8 动态链接库
13.8.1 DLL的DEF文件
13.8.2 DLL入口点
13.8.3 DLL的装载
13.8.4 DLL内存管理
第14章 多线程、IPC和I/O
14.1 线程的建立
14.2 同步的实现
14.3 建立一些准则
14.4 决定线程的数量
14.5 用多少线程?
14.6 线程和用户界面
14.6.1 情况A:填写列表框的第二个线程
14.6.2 提高第二个线程的优先级
14.6.3 情况B:让第二个线程包揽一切
14.7 窗口张程
14.8 IPC机制
14.8.1 对信号机的理解
14.8.2 MUTEX的管理
14.8.3 利用事件使线程同步
14.8.4 临界区的定义
14.9 Wait函数详探
14.10 线程同步
14.11 总结
第15章 Windows高级技术
15.1 物主绘图列表视图
15.2 属性表
15.3 向导的建立
15.4 子类处理和超类处理
15.4.1 对一个编辑窗口进行子类处理
15.4.2 子类处理、回调用函数和物主绘图
15.5 超类处理
15.6 关于超类的一些考虑
15.7 消息流
15.8 控制面板对象
15.9 建立一个应用程序来载入.CPL模块
15.10 定制控件的建立
15.11 输入控制
15.12 圆形的窗口
第16章 Win95外壳的开发
16.1 检查任务栏
16.2 桌面的深入探索
16.2.1 关于复活节彩蛋
16.2.2 外壳命名空间
16.3 对象的移动、拷贝、删除和更名
16.4 最近常用文档的管理
16.5 快捷的建立和推敲
16.6 发送文档
16.7 外壳的挂接
16.8 外壳对象和定制应用程序
16.8.1 任务栏通知区域
16.8.2 深入探索“类”
16.8.3 更多的浏览
16.9 应用程序栏
16.10 拖动至外壳
16.11 总结
附录 A 窗口消息
A.1 按值排序的窗口消息
A.2 按名称排序的窗口消息
附录 B 本书示范程序的安装
B.1 运行设置程序
B.2 补充文件