第○章引言 1
0.1进入Turbo Pascal for Widnows 1
0.1 1 Turbo Pascal语言 1
0.1.2 Windows环境中的程序设计 1
0.1.3资源编辑工具 1
0.1.4 ObjectWindows库 1
目 录 1
0.1.5 Turbo Debugger for Windows 2
0.2需要知道什么 2
0.3本书的编排 2
1.1什么是Windows应用程序 4
第一部分学习ObjectWindows 4
第一章继承窗口 4
1.1.1 Windows的优点 5
1.1.2需求 5
1.2编程工具 5
1.2.1事件驱动结构 5
1.2.2与设备无关的图形 5
1.2.3多任务 6
1.2.4内存管理 6
1.2.9多文档接口 7
1.2.8动态数据交换 7
1.3Windows数据类型 7
1.2.6动态连接 7
1.2.7剪裁板 7
1.2.5资源 7
1.4面向对象的窗口编程 8
1.4.1一个更好的Windows接口 8
1.4.2自动消息响应 9
1.5 Windows程序的结构 9
1.5.1 Windows的结构 10
1.5.2和Windows及DOS的交互 10
1.6“Hello,Windows”程序 10
1.6.1应用程序开发周期 12
第二章循序渐进地学习 14
2.1第一步:一个简单的Windows应用程序 14
2.1.1应用程序需求 14
2.1.2定义应用程序类型 14
2.2主窗口对象类型 16
2.2.1什么是窗口对象 16
2.2.2创建一个新窗口类型 17
2.2.3对消息的响应 17
2.2.4终止应用程序 19
3.2在窗口中显示正文 22
3.1什么是显示环境 22
第三章在窗口中填写内容 22
3.2.1消息记录 23
3.2.2消除屏幕 23
3.3第四步:在窗口中画线 24
3.3.1拖动模型 24
3.3.2对拖动消息的响应 25
3.4第五步:改变线宽 27
3.4.1跟踪线宽 27
3.4.2运行输入对话 29
3.5.1绘图模型 30
3.5自动刷新图形 30
3.5.2将图形作对象存储 31
3.5.3重画储存的图形 33
第四章加入一个菜单 34
4.1菜单资源 34
4.2主窗口菜单 34
4.3截获菜单消息 35
4.4响应菜单消息 36
4.5给可执行文件添加资源 37
第五章保存对话 38
5.1第八步:加一个弹式窗口 38
5.1.2 MakeWindow函数 39
5.1.1创建和显示弹出式窗口 39
5.2加一个对话框 40
5.2.1加一个对象域 41
5.2.2修改Init构子 41
5.2.3运行对话框 42
5.3第九步:将图形存入一个文件中 42
5.3.1监视状态 42
5.3.2保存和装载文件 44
第六章弹出窗口 47
6.1第十步:弹出一个帮助窗口 47
6.2在ObjectWindows中使用单元 47
6.2.2创建单元 48
6.2.1修改主程序 48
6.3给窗口加上控制 50
6.3.1什么是控制 50
6.3.2创建窗口控制 50
6.3.3作为域的控制对象 51
6.3.4管理控制 51
6.3.5对控制事件的响应 52
7.2.3接口对象 55
7.2.2 TApplication 55
7.2.1基对象 55
7.1 ObjectWindows约定 55
第七章ObjectWindows概述 55
第二部分使用ObjectWindows 55
7.2 ObjectWindows的层次 55
7.2.4窗口对象 56
7.2.5对话对象 57
7.2.6控制对象 57
7.3.2 WinProcs 58
7.4 Windows资源 58
7.3.4 StdDlgs 58
7.3.3 WinTypes 58
7.3.1 WObjects 58
7.3 ObjectWindows单元 58
7.2.7 MDI对象 58
7.5 Windows函数 59
7.5.1 ObjectWindows调用Windows函数 59
7.5.2对函数的存取 59
7.5.3组合风格常量 60
7.5.4 Windows函数的类型 60
7.5.5回谓函数 60
7.6接收Windows消息 61
7.6.1怎样将事件变成方法调用 61
7.6.3 Windows消息类型 62
7.6.2 Windows消息的参数 62
7.6.4缺省消息处理 63
7.6.5发送消息 63
7.6.6消息范围 64
7.6.7用户定义消息 64
第八章应用程序对象 66
8.1控制应用程序流程 66
8.2初始化应用程序 67
8.2.1初始化主窗口 67
8.2.2初始化每个应用程序实例 68
8.2.3初始化第一个应用程序实例 69
8.3运行应用程序 71
8.4关闭应用程序 71
第九章接口对象 73
9.1 TWindowsObject类型 73
9.2为什么要有接口对象 73
9.3窗口父子关系 74
9.3.1子窗口链表 74
9.3.2子窗口循环程序 75
9.4消息处理 75
9.4.1响应消息 76
9.4.2命令和子窗口消息 77
第十章窗口对象 80
10.1 TWindow类型 80
10.2初始化和创建窗口对象 80
10.2.1初始化对象 80
10.2.2创建窗口元素 83
10.2.3初始化和创建小结 83
10.3窗口类的登录 83
10.3.1登录属性 84
10.4编辑窗口和文件窗口 86
10.4.1编辑窗口 86
10.4.2文件窗口 88
10.5滚动窗口 89
10.5.1流动器属性 89
10.5.2给窗口加一个滚动器 90
10.5.3滚动标例 90
10.5.4自动滚动与跟踪 92
10.5.5修改滚动单元和范围 92
10.5.6修改滚动的位置 92
10.5.7设置页大小 93
10.5.8优化Paint方法 93
11.2.2执行对话 95
11.2.1构造和初始化对话 95
11.1 使用对话资源 95
第十一章对话对象 95
11.2使用对话对象 95
11.2.3结束对话 96
11.2.4管理对话对象 96
11.2.5控制操作和消息处理 97
11.2.6连接控制对象 98
11.2.7调用DefWndProc 99
11.2.8使用对话的扩展例子 100
11.2.9对话窗口 100
11.3输入对话 101
11.4.1初始化文件对话 102
11.4文件对话 102
11.4.2运行文件对话 103
第十二章控制对象 104
12.1 TControl对象类型 104
12.1.1构造和创建控制对象 105
12.1.2取消和释放控制 106
12.1.3控制和消息处理 106
12.2象对话的窗口 108
12.3列表框控制 108
12.3.1构造和创建列表框 108
12.3.2修改列表框 109
12.3.3询问列表框 110
12.3.4从列表框中获取选择 110
12.3.5示例程序LBoxTest 111
12.4静态控制 111
12.4.1构造静态控制 112
12.4.2询问静态控制 113
12.4.3修改静态控制 113
12.4.4 StatTest应用程序示例 113
12.5.1响应按钮消息 114
12.5按钮控制 114
12.6检查框和无线按钮 115
12.6.1构造检查框和无线按钮 115
12.6.2询问选择框的状态 115
12.6.3修改选择框的状态 116
12.7组框 116
12.7.1响应组框消息 116
12.7.2 BtnTest示例程序 117
12.8滚动条 117
12.8.1构造滚动条 117
12.8.3修改滚动条 119
12.8.4响应滚动条事件 119
12.8.2询问滚动条 119
12.8.5 SBarTest示例程序 121
12.9编辑控制 121
12.9.1构造编辑控制 121
12.9.2剪载板和编辑操作 123
12.9.3询问编辑控制 123
12.9.4修改编辑控制 125
12.9.5 EditTest示例程序 126
12.10组合框 126
12.10.1三种组合框 126
12.10.4 CBoxTest示例程序 128
12.10.3修改组合框 128
12.10.2构造组合框 128
12.11设置控制值 129
12.11.1定义转换缓冲区 129
12.11.2定义相应的对话或窗口 130
12.11.3转换数据 131
12.11.4支持用户控制的数据转换 132
12.11.5转换示例 132
第十三章MDI对象 133
13.1 MDI应用程序的组成部分 133
13.1.1每一个MDI窗口是一个对象 133
13.2.2构造MDI子窗口 134
13.2构造MDI窗口 134
13.2.1构造MDI框架窗口 134
13.3 MDI应用程序中的消息处理 135
13.4管理MDI子窗口 135
13.4.1子窗口的激活 136
13.4.2子窗口菜单 136
13.5 MDI应用程序示例 136
14.1 内存管理程序的使用 137
14.2 Windows内存管理方法 137
14.2.1句柄和地址 137
第十四章内存管理 137
第三部分ObjectWindows高级专题 137
14.3局部和全局内存 138
14.4局部堆的使用 138
14.4.1局部内存的分配和存取 139
14.4.2局部内存块的释放和弃掉 140
14.4.3局部内存块的再分配和修改 140
14.4.4局部内存块的查询 141
14.4.5程序设计的考虑 141
14.5全局堆的使用 141
14.5.1全局堆的分配和存取 142
14.5.4全局内存块的再分配和修改 143
14.5.3全局内存块的释放和弃掉 143
14.5.2锁存全局内存块的其它方法 143
14.5.5全局内存块的查询 144
14.5.6全局可弃内存块的修改 145
14.5.7内存较少时的警告消息 145
14.5.8程序设计的考虑 145
第十五章动态连接库 146
15.1 DLL子程序的存取 146
15.2 DLL例示 146
16.1.2数据在写字板中的存放 152
16.1.1写字板的格式 152
16.1 Windows的写字板 152
第十六章动态数据交换 152
16.1.3从写字板中检索数据 154
16.1.4数据处理的延迟 155
16.2程序间的消息传送 155
16.3动态数据交换 155
16.3.1 述语 156
16.3.2会话的创建 156
16.3.3会话的终止 158
16.3.4交换数据的方法 158
16.3.5单数据项的请求 158
16.3.6数据传送 161
16.3.7服务程序修改数据值 162
16.3.8服务程序执行宏命令 164
16.3.9系统主题 165
第十七章 图形设备接口 GDI 166
17.1 显示环境 166
17.1.1 显示环境的管理 166
17.1.2显示环境的内容 166
17.2绘图工具 167
17.2.1库存工具 167
17.2.2逻辑工具 168
17.3.2画窗口 174
17.3在窗口中显示图形 174
17.3.1 在窗口中绘图 174
17.3.3绘图方法 175
17.3.4绘图工具的使用 175
17.4 GDI绘图函数 176
17.4.1画正文的函数 177
17.4.2画线函数 177
17.4.3画形状的函数 179
17.4.4调色板的使用 182
18.2将资源加到可执行文件中 184
18.1资源创建 184
第十八章资源使用 184
18.3资源编译器的运行 185
18.3.1资源编译器的说明文件 186
18.3.2资源编译器指南 189
18.4将资源加载到应用程序中 189
18.4.1加载菜单 189
18.4.2加载加速键表 190
18.4.3加载对话框 191
18.4.4加载光标和图标 191
18.4.5加载字符串资源 192
18.4.7用位图创建画刷 193
18.4.6加载位图 193
18.4.8在菜单中显示位图 194
第十九章标准应用程序指南 196
19.1设计原则 196
19.1.1给用户提供响应信息 196
19.1.2让用户控制程序流 196
19.2标准外观与行为 196
19.2.1一般视面 197
19.2.2鼠标与键盘的交互 197
19.2.3菜单 197
19.3编写安全的程序 199
19.2.5设计考虑 199
19.2.4对话框 199
19.3.1主要消费对象 202
第四部分集和流 204
第二十章集 204
20.1集 204
20.1.1可动态地设置集的大小 204
20.1.2有多形的集 204
20.1.3类型检查和集 204
20.2集的创建 205
20.3循环程序 206
20.3.1 ForEach循环 206
20.3.2 FirstThat和LastThat循环 207
20.4有序集 208
20.5字符串集 209
20.5.1再研究循环过程 210
20.6多形集 210
20.7集和内存管理 212
21.2.1流是不规则的 213
21.2流 213
21.2.2流对对象的处理 213
21.1对象的输入/输出问题 213
第二十一流 213
21.3流的核心用途 214
21.3.1.建立流 214
21.3.2流的读、写 214
21.3.3流的关闭 215
21.4对象与流 215
21.4.1加载和存贮方法 215
21.4.2流的登记 216
21.5.2 Get对象的过程 217
21.5.1 Put对象的过程 217
21.5流的机制 217
21.4.4标准对象的登记 217
21.4.3登记方法 217
21.5.3空对象指针的处理 218
21.6流集的例子 218
21.7进行存贮操作的主体 221
21.7.1流中的域段 221
21.7.2同类窗口实例 222
21.8流的拷贝 222
21.9随机存取的流 223
21.10流中的非对象 223
21.11设计自己的流 223
21.11.1流错误的处理 223