目 录 1
序言 1
致谢 2
第1章Windows引言 3
1.1 Windows是什么 3
1.2历史回顾 3
1.2.1从BIOS 10H到Windows软件 4
1.2.2中断10H 4
1.2.3高级语言 5
1.3 Windows可以做什么 5
1.3.1标准的用户界面 6
1.3.2多任务处理 7
1.3.3内存管理 8
1.3.4队列输入 9
1.3.5消息 9
1.3.6设备无关性 10
1.3.7动态连接库 11
1.3.8新的可执行格式 11
1.3.9 MS-DOS应用程序 12
1.4增强的Windows 12
1.5初始条件 13
1.5.1 Windows工具 14
2.2.1边界(Border) 15
2.2可视界面 15
第2章Windows概念和术语 15
2.1 什么是Windows 15
2.2.2标题条(Titie Bar) 16
2.2.3控制框(Control Box) 16
2.2.4系统菜单(System Menu) 16
2.2.5最小化框(Minimize Box) 16
2.2.6最大化框(Maximize Box) 16
2.2.7垂直流动条(Vertical Scroll Bar) 16
2.3窗口类(Windows classes) 17
2.2.10工作区(Cliet bar) 17
2.2.9菜单条(Menu bar) 17
2.2.8水平流动条(Horizontal ScrollBar) 17
2.4 面向对象的编程(Objectoriented programing) 18
2.4.1 图标(Icons) 18
2.4.2光标(Cursors) 18
2.4.3脱字符(Carets) 19
2.4.4消息框(Message Boxes) 19
2.4.5对话框(Dialog Boxes) 19
2.4.6字体(Font) 20
2.4.7位图(Bitmap) 20
2.5获得消息 21
2.4.9画刷(Brushes) 21
2.4.8画笔(Pens) 21
2.5.1消息格式 22
2.5.2消息从哪里产生 22
2.5.3一旦接到消息如何处理 23
2.5.4消息环 23
2.6什么是资源 24
2.7访问Windows函数 24
2.7.1 PASCAL调用约定 24
2.8什么是WINDOWS.H 25
2.9 Windows表示法 25
2.10 Windows应用程序的组成成份 26
2.10.1 C编译器 27
2.10.2资源编辑器 27
2.10.3资源编译器 28
2.10.4连接器(Linker) 28
2.10.5 MAKE/NMAKE 28
第3章访问Windows环境 29
3.1坐标系 29
3.1.1八种映射模式 29
3.1.2设备坐标 30
3.1.3视窗 30
3.1.5修改缺省坐标 31
ANISOTROPIC的一点说明 31
3.1.4关于WM ISOTROPI和MM 31
3.2设置初始窗口的大小、位置、光标、图标和式样 32
3.3 SHOWWINDOW函数 39
3.4 SetClassWord函数 40
3.5虚键 41
3.6控制和对话框 42
3.6.1静态控制 43
3.6.2按钮控制 43
3.6.3无线按钮控制 43
3.6.4检查框控制 43
3.6.5编辑框 43
3.6.7流动条 44
3.6.6列表框 44
3.7系统定时器 45
3.7.1 定时器如何工作 45
3.7.2使用定时器 45
3.8 内存 46
3.8.1 内存分配 46
3.8.2内存管理 47
3.8.3限制对象的数量 47
3.8.4使对象规模最小 48
3.8.5可重新定位的对象 48
4.1.1进一步说明句柄 50
4.1开始 50
第4章编写简单的Windows程序 50
4.2 Windows应用程序的基本成分 51
4.2.1进一步观察WinMain函数 51
4.2.2注册窗口类 51
4.2.3创建窗口 55
4.2.4显示和更新窗口 55
4.2.5消息环 56
4.2.6 GetMessage函数 56
4.2.7 TranslateMessage函数 56
4.2.8 DispatchMessage函数 56
4.3窗口函数 57
4.3.1 WM_PAINT消息 58
4.4获得模块定义文件 59
4.5创建MAKE文 60
4.6组装 61
4.7如何用C04SWA创建其它 62
Windows应用 62
4.8获得INCLUDE文件 65
4.9关于资源文件 65
4.9.1 了解资源编译器 68
4.10 MAKE修改 68
5.1.3滚动条位置 70
5.1.2滚动条范围 70
5.1.4滚动条类型 70
5.1滚动条是什么 70
5.1.1 下翻即上滚 70
第5章控制Windows窗口 70
5.2 如何编写使用滚动条的应用程序 71
5.2.1 MAKE文件(C05SCROL或C05SCROL.MAK) 76
5.2.2定义文件(C05SCROL.DEF) 76
5.2.3 资源文件(C05SCROL.DOC) 77
5.2.4应用文件(C05SCROL.CPP) 77
5.3如何使用系统定时器 81
5.3.4应用文件(C05TICK.CPP) 86
5.3.3消息文件(C05TICK.DOC) 86
5.3.2定义文件(C05TICK.DEF) 86
5.3.1 MAKE文件(C05TICK或C05TICK.MAK) 86
5.4 如何使用滚动条创建抵押分期偿还表 88
5.4.1 C05LOAN和C05LOAN.MAKMAKE文件 95
5.4.2 C05LOAN.DEF模块定义文件 95
5.4.3 C05LOAN.CPP应用文件 95
第6章设计图标、光标和位图 98
6.1使用Windows工具创建图标、光标和位图 98
6.1.1 Microsoft Image Editor:启动 98
6.1.2使用Image Editer创建第一个图标、光标和位图 99
6.1.5使用Resource Workshop创建第一个图标、光标或位图 104
6.1.3使用Image Editer创建第一个位图 104
6.1.4 Borland Resource Workshop:启动 104
6.1.6使用Resource Workshop设置光标的热点 107
6.2使用图标 108
6.2.1 MAKE文件(C061CON或C06ICON.MAK) 111
6.2.2 定义文件(C06ICON.DEF) 111
6.2.3资源文件(C06ICON.RC) 111
6.2.4应用文件(C06ICON.CPP) 111
6.3使用光标 112
6.4.1创建NMAKE文件 115
6.4使用Microsoft的NMAKE 115
6.3.3应用文件(C06CUR.CPP) 115
6.3.2资源文件(C06CUR.RC) 115
6.3.1 MAKE和定义文件(C06CUR或C06CUR.MAK以及C06CUR.DEF) 115
6.4.2 NMAKE选项 116
6.4.3 NMAKE调用 116
6.5使用Borland MAKE 117
6.6使用资源编译器 118
6.6.1资源编译器语句 118
6.6.2用资源编译器进行编译 120
6.6.3 使用Borland ResourceWork-shop执行资源编译 121
7.1.2菜单和资源编译器 122
7.1.1菜单是什么 122
7.1菜单机制 122
第7章开发菜单和键盘加速器 122
7.1.3菜单关键字和选项 123
7.1.4键盘加速器 124
7.2创建各类菜单 126
7.2.1创建一规定窗口形状的菜单 127
7.2.2 MAKE文件参数(C07MENUI或C07MENU1.MAK) 130
7.2.3 首标文件(C07MENU1.H) 131
7.2.4定义文件(C07MENU1.DEF) 131
7.2.5资源文件(C07MENU1.RC) 131
7.2.6应用文件(C07MENU1.CPP) 131
7.3使用菜单改变背景颜色 132
7.3.1 MAKE和定义文件(C07ME-NU2、C07MENU2.MAK和C07MENU2.DEF) 138
7.3.2首标文件(C07MENU2.H) 138
7.3.3资源文件(C07MENU2.RC) 138
7.3.4应用文件(C07MENU2.CPP) 138
7.4使用菜单确定系统信息 140
7.4.1 MAKE和定义文件(C07ME-NU3,C07MENU3.MAK,和C07MENU3.DEF) 146
7.4.2首标文件(C07MENU3.H) 146
7.4.3 资源文件(C07MENU3.RC) 146
7.4.4应用文件(C07MENU3.CPP) 147
7.5使用菜单观察目录清单 148
7.5.3资源文件(C07MENU4.RC) 154
7.5.4应用文件(C07MENU4.CPP) 154
7.5.2首标文件(C07MENU4.H) 154
7.5.1 MAKE和定义文件(C07ME-NU4或C07MENU4.MAK和C07MENU4.DEF) 154
第8章数据输入设备——对话框 158
8.1对话框引言 161
8.2 Dialog Editor 162
8.2.1为何使用Dialog Editor 162
8.2.2使用Microsoft Dialog Editor 162
8.2.3使用Editor进行编辑 165
8.2.4使用Microsoft Dialog Editor创建一对话框 166
8.2.5使用Borland Dialog Editor 168
8.3创建各种应用对话框 169
8.2.6使用Borland Dialog Editor创建对话框 169
8.3.1创建一简单的About对话框 170
8.3.2使用对话框修改图形 177
8.3.3使用对话框输入文本 188
8.3.4使用对话框输入整数 197
8.3.5使用对话框输入实数 206
8.4创建消息框 216
第9章字体使用 222
9.1字体结构和定义 222
9.1.1逻辑字体常数 222
9.1.2 TEXTMETRIC结构 224
9.1.4字符元 225
9.1.3 LOGFONT结构 225
9.2字体的其它属性 226
9.2.1字体宽度 226
9.2.2自动定行距和靠紧 228
9.2.3 OEM与ANSI字符集合 228
9.2.4逻辑与物理字体 228
9.2.5矢量与光栅字体 228
9.2.6生成字体 228
9.3字体类型 228
9.5使用字体编辑器 229
9.4字体映象模式 229
9.3.3定制字体 229
9.3.2打印机和显示字体 229
9.3.1缺省字体 229
9.5.1如何加载Font Editor 230
9.5.2基本Font Editor窗口 231
9.5.3如何改变字体头 232
9.5.4如何定制字体 233
9.5.5如何保存定制字体设计 234
9.5.6如何制做字体资源文件 234
9.6各式字体程序 234
9.6.1 CreateFont函数 234
9.6.3 C09FONT1程序 235
9.6.2 CreateFontIndirect函数 235
9.6.4 C09FONT2程序 241
9.6.5 C09FONT3程序 245
9.6.6 C09FONT4程序 249
9.7附言 253
第10章图形概念和绘图原语 255
10.1图形设备接口(GDI) 255
10.1.1 GDI的目的 255
10.1.2象素操作 255
10.1.3设备信息 255
10.1.4设备描述表句柄 258
10.1.5映象模式 259
10.2 GDI绘图原语 260
10.2.1图形原语 260
10.2.2使用GDI原语绘图 266
10.2.3简单的棒图 270
10.3 GDI工具 274
10.3.1画笔 275
10.3.2画刷 276
10.3.3简单的棒图(续) 277
10.3.4颜色,颜色,颜色 282
第11章绘制数学和科学图表 297
11.1 正弦波 297
11.2衰减正弦波 301
11.3傅里叶级数 308
第12章设计饼图、棒图以及折线图 319
12.1调色板管理器 319
12.1.1逻辑调色板开销 319
12.1.2创建LOGDALETTE数据 320
结构 320
12.1.3创建逻辑调色板 320
12.1.4选择调色板至设备 320
12.1.5定义调色板 320
12.1.6定义调色板颜色 320
12.2饼图 321
12.2.1 C12PIE、C12PIE.MAK以及C12PIE.DEF文件 330
12.2.2 C12PIE.H首标文件 330
12.2.3 C12PIE.RC资源文件 330
12.2.4 C12PIE.CPP程序 331
12.3棒图 334
12.3.1 C12BAR,C12BAR.MAK以及C12BAR.DEF文件 346
12.3.2 C12BAR.H首标文件 346
12.3.3 C12BAR.RC资源文件 347
12.3.4 C1 2BAR.CPP程序 347
12.4折线图 349
12.4.3 C12LINE.RC资源文件 363
12.4.4 C12LINE.CPP程序 363
12.4.2 C12LINE.H首标文件 363
12.4.1 C12LINE、C12LIN.MAK以及C12LINE.DEF文件 363
12.5将三种图改变至最大 366
第13章特殊的应用程序:草图、动画以及多媒体声音屏幕保存器 367
13.1 草图:带有多媒体声音的MOUS-A-SKETCH 367
13.1.1 C13SKCH文件 377
13.1.2 C13SKCH.CPP代码 377
13.2动画:火车A 378
13.3动画:带有多媒体声音的火车B 384
13.4保存屏幕:带有多媒体声音的一个Microsoft保存屏幕程序 391
13.4.1 C13SAVER文件 391
13.4.2 C13SAVER应用程序代码 397
13.5练习及兴趣 399
第14章Borland ObjectWindows——开发面向对象的Windows程序库 400
14.1三种重要的面向对象的特征 400
14.1.1抽象 400
14.1.2封装 401
1 4.1.3消息响应 401
1 4.2检查ObjectWindowsc对象 401
14.3一个简单的ObjectWindows应用程序:C14BSOWA.CPP 403
14.3.1在C14BSOWA应用程序中使用对象 408
14.4在C14BSOWA.CPP应用程 411
序中建立应用程序 411
14.4.1如何绘制一条数学曲线 411
14.4.2试验Arial TrueType字体 415
14.4.3旋转Times New RomanTrueType字体 418
14.5开发更高级的应用程序 421
第15章使用资源开发Borland C++ObjectWindows的应用程序 422
15.1 C15DRAW:开发定制图标、光标、菜单及组键盘加速器的程序 423
15.1.1 C15DRAW.DEF以及 428
C15DRAW.H文件 428
15.1.2 C15DRAW.ICO图标 428
15.1.3 C15DRAW.CUR光标 429
15.1.4 C15DRAW.RC菜单以及键盘加速器 430
15.1.5 C15DRAW.CPP应用程序 430
15.2 C15PIE:使用定制图标、光标、菜单以及对话框的专业质量图形 432
15.1.6执行C15DRAW应用程序 432
15.2.1 C15PIE.DEF与C15PIE.H文件 441
15.2.2 C15PIE.ICO以及C15PIE.COR图标及光标 441
15.2.3 C15PIE.RC菜单及对话框资源文件 442
15.2.4 C15PIE.CPP应用程序代码 443
15.2.5执行C15PIE应用程序 448
15.3 C15EDIT:一个增强的文本编辑器 449
15.3.1 C15EDIT.DEF以及C15EDIT.H文件 454
15.3.2 C15EDIT.ICO图标 454
15.3.3 C15EDIT.RC资源文件 455
15.3.4 C15EDIT.CPP应用程序代码 458
15.3.5执行C15EDIT应用程序 459
16.1类库 460
第16章学习用于面向对象的Win-dows程序开发的Microsoft基类库 460
16.2 设计Microsoft Foundationclass Library的考虑 461
16.3 重要的Microsoft FoundationClass Library功能 461
16.4 COBJECT:所有类库应用程序的基础 462
16.5 关键的Microsoft FoundationClass Library 464
16.6一个简单的基类实例 465
16.6.1使用C16EASY.CPP建立一个窗口 465
16.6.2 AFXWIN.H首标文件 466
16.6.3 CWinApp:衍生CTheApp类 467
16.6.4 CFrameWnd:应用程序窗口 468
16.6.6结构 469
16.6.5 InitInstance:使用成员函数 469
16.6.7测试C15EASY应用程序 470
16.7一个简单Microsoft FoundationClass Library应用程序 470
16.7.1研究C16MFCA MAKE文件 473
16.7.2研究C16MFCA.DEF模块定义文件 473
16.7.3研究C16MFCA.H首标文件 474
16.7.4从C16MFCA.CPP中学习 474
16.7.5测试C16MFCA应用程序 475
16.8图形基元 476
16.8.1研究C16GDI的MAKE文件、C16GDI.DEF模块定义文件以及C16GDI.H首标文件 481
16.8.2研究C16GDI.CPP 481
16.8.3测试C16GDI应用程序 482
17.1追加资源至科学图表:菜单、对话框以及多媒体声音 483
第17章使用资源开发Microsoft C++Foundation Class LIbrary应用程序 483
17.1.1 C17FOUR执行文件以及C17FOUR.DEF模块定义文件 491
17.1.2 C17FOUR.H首标文件 491
17.1.3 C17FOUR.H资源首标文件、C17FOUR.RC资源描述文件以及C17FOUR.DLG对话描述文件 492
17.1.4 C17FOUR.CPP应用程序文件 493
17.1.5创建一个定制CMainWnd类 493
17.1.6得到窗口的当前尺寸 494
17.1.7绘制傅里叶波形 495
17.1.8创建About对话框 497
17.1.9使用数据输入框工作 497
17.1.12 测试C17FOUR应用程序 498
17.1.11 使用消息映象工作 498
17.1.10响应OnExit 498
17.2追加资源至棒图:菜单和对话框 499
17.2.1 C17BAR命令行MAKE文件、C1 7BAR.MAK设计MAKE文件以及C17BAR.DEF模块定义文件 513
17.2.2 C17BAR.H首标文件 513
17.2.3 C17BARR.H资源首标文件、C17BAR.RC资源描述文件以及C17BAR.DLG对话描述文件 514
17.2.4 C17BAR.CPP应用程序文件 515
17.2.5使用棒图数据 516
17.2.6准备窗口 517
17.2.7绘制文本至窗口 517
17.2.8绘制轴和棒 519
17.2.9测试C17BAR应用程序 520
附录A Windows API函数、Microsoft基类库项以及Borland面向对象的Windows类库项 521