前言 1
第1部分 系统结构 3
第1章 Windows编程接口 5
Win16编程接口 7
Win32编程接口 9
Win16兼容性 10
32位操作 11
可移植性 12
Win32s--Windows3.1对Win32API的支持 14
小结 16
第2章 操作系统组件和数据结构 17
原始系统对象和对象句柄 18
KERNEL——核心操作系统 18
GDI——图形库 20
用户接口 22
小结 28
第3章 Visual C++编程工具 29
开始一个新项目 29
什么是makefile文件 36
在你的项目中创建C++源文件和头文件 36
编译、建立和执行 37
makefile文件中相关性文件的更新 37
获得帮助 38
找到联机信息 39
航行于Developer Studio的联机文档系统 43
第2部分 OOP和C++基础 47
第4章 什么是面向对象编程 49
范例的过去、现在和未来 49
机器语言 50
汇编和宏汇编语言 50
高级语言和结构化编程 53
面向对象的语言 55
术语 56
面向对象编程、设计和分析 56
面向对象的分析和设计 59
小结 62
第5章 C和C++之间的小差别 63
C和C++简史 63
强数据类型 64
Char是一个真正的数据类型 65
Char数组的长度是不变的 65
Wchar-t是数据类型,不是类型定义 65
enum是真正的独特数据类型 66
不要顺便定义类型 67
类型说明也定义类型名 67
数据结构的增强 67
等同的结构不是可互换的 68
一个结构有一个作用域 69
可能发生在结构内部和外部的无名联合 70
关于数据对象的规则 72
数据对象必须只初始化一次 72
const数据对象必须进行初始化 72
缺省情况下const数据对象是静态的 72
const和volatile指针的用法与C中的有所不同 73
const数据对象可以代替常数使用 73
非局部数据对象可以通过表达式初始化 76
声明是在任何地方都有效的语句 76
关于函数和操作的规则 77
使用原型格式的函数 78
函数返回值是强制性的 78
函数重载 78
函数可以有缺省自变量 79
函数可以被声明为内联式的 81
操作符重载 82
新的C++关键字和操作符 84
新的C++关键字 84
Stdio不再是标准I/O 84
新的C++操作符 85
//也是注释 86
小结 87
第6章 类的C++实现 89
类的一个简单例子 90
C++类中的成员函数 91
访问一个对象的值 93
友元的帮助 99
安排释放一个对象 100
关于继承性的一个示例类 101
虚成员函数 103
受保护的访问限制 103
基类和派生类的互换 104
C++继承性技巧 105
更严格的访问限制 106
派生类中的虚成员函数 107
再谈构造函数和析构函数 108
多重继承 108
用::操作符选择上下文 108
选择一个低层作用域 108
选择一个嵌套作用域 110
选择顶层作用域 111
选择一个隐含作用域 111
静态类成员 114
类库 116
小结 116
第7章 C与C++之间的其他区别 117
动态对象分配 117
new操作符 118
new[]操作符 119
delete操作符 120
delete[]操作符 120
引用变量 121
引用类型 121
引用自变量 122
引用函数返回 123
链接非C++例程和数据 126
模板 127
函数模板例子 128
一个类模板例子 130
异常 132
简单的异常例子 133
嵌套异常处理器 134
料想不到的异常 135
未处理的异常 135
异常处理程序的其他版本 136
小结 136
第8章 C++中的面向对象编程 139
软件开发过程 139
软件开发模式 140
方法和标记法 142
分而治之再重新组合 142
分析 143
为设计派生类 145
设计 145
实现与接口的对比 146
为设计派生组件 147
程序结构和组件的重用 147
利用语言特性的优势 148
程序优化 149
评价你的设计 149
实现 150
管理 152
小结 153
第3部分 MFC编程基础 155
MFC库概述 157
第9章 了解MFC库 157
设计原则 159
关键的结构元素 160
Windows的MFC库支持 175
AfxWinMain()人口点 176
应用程序对象CwinApp 185
小结 187
第10章 创建窗口 189
MFC窗口类 190
内置系统窗口CWnd 192
包容器窗口类 194
数据窗口类 197
创建简单的框架窗口 199
AppWizard的文档/视图结构 199
两个步骤的窗口结构 200
初始化带有LoadFrame()的框架窗口 210
简单的框架窗口——AFRAME 213
窗口控制和消息 233
消息映射 234
用Class Wizard编辑消息映射 235
框架窗口消息 238
小结 245
第11章 对命令输入的响应 247
菜单的创建与控制 248
菜单消息 252
动态菜单操作 255
创建上下文相关菜单 261
使用加速键 264
关于键盘输入 265
加速键定义 265
选择合适的加速键 267
复合加速键表 269
范例程序:BASEMENU 271
MFC的控制条类 295
工具条的创建与控制 295
工具条的创建 297
显示和隐藏工具条 299
范例程序:CTRLBARS 300
小结 321
第12章 理解和创建对话框 323
对话框基础知识 323
什么是对话框 323
什么是对话框控件 327
模态对话框和非模态对话框 329
第一步:创建对话模板 330
创建对话框 330
第二步:创建对话类 335
第三步:创建对话框 339
第四步:对话初始化处理 343
第五步:处理控件报告 347
含有五个对话框的范例对话框程序 349
利用CDialog直接创建About…框 390
使用通用的File→Open对话框 391
创建一个自定义的模态File→Type对话框 393
创建控制条 398
创建自定义的非模态对话框——进程条 400
小结 401
第13章 GDI与文本绘图 403
GDI回顾 403
图形输出的类型 404
GDI设备 407
设备上下文 409
DC绘图属性 409
在窗口内绘制文本 411
WM-PAINT消息 411
绘制DC 413
文本坐标计算 417
申请绘制消息 422
在绘制消息之外进行绘图 423
文本外观的控制 425
基本的文本属性 425
字体 429
FILELIST范例程序 432
小结 454
第14章 鼠标和键盘输入 455
输入基础和系统状态 456
消息输入 456
键盘输入状态 462
鼠标输入状态 464
局部输入状态 470
前台窗口 471
键盘输入 471
键盘输入的转换 472
回显键盘焦点 475
Windows字符集 482
滚动和选择文本——GETTEXT 489
设置客户区鼠标指针 538
显示一个键盘光标 539
选择文本 541
小结 546
第15章 数据库连接 547
数据库术语 548
标准 548
ODBC标准 549
ODBC的组成 549
ODBC驱动程序适应层 551
ODBC SQL适应层 551
ODBC实现 552
配置ODBC 552
连接一个数据源 553
准备和执行SQL请求 554
查询数据和数据源 554
检索数据 555
断开数据源 556
取数据的简单的ODBC应用程序 556
创建ODBC DSN 557
创建VisualC++5.0项目 557
修改AppWizard生成的代码 557
为新项目增加一个对话框 558
增加初始化及数据库代码 559
封装高级ODBC功能 564
创建VisualC++5.0项目 565
为CODBCInfo类创建头文件 566
为CODBCInfo类创建 Macro Include 头文件 566
定义CODBCInfo类 568
建立CODBCInfoDLL 580
测试CODBCInfo类 580
MFC数据库类 581
CDatabase 582
CRecordset 584
使用MFC数据库类的简单应用程序 595
创建Visual C++5.0项目 595
在应用程序中增加一个对话框 596
增加对MFC数据库类的支持 596
增加一个工具类,封装用户数据 597
为UserMaster表创建一个CRecordset类 598
修改对话框的头文件 598
修改对话框的实现文件 598
建立User Maintenance程序 608
参数化记录集和查询 608
建立并使用参数化记录集 609
建立参数化查询 614
小结 619
连接到FTP服务器 621
第16章 连接到Internet 621
创建一个连接到服务器的程序 624
分析URL串 625
从FTP服务器检索文件 625
创建从服务器检索文件的程序 627
使用线程连接和检索 629
向FTP服务器发送文件 632
从FTP服务器检索目录 635
小结 641
OLE控件 643
第17章 ActiveX控件 643
ActiveX控件 644
OLE控件的使用 644
属性 645
方法 647
事件 647
OLE控件接口 648
实现一个ActiveX控件 648
程序结构 650
应用程序类 651
控件类 651
控件类的实现 654
属性页类 655
属性页类的实现 656
初始化ActiveClock控件的其余部分 656
测试控件 663
在Web页中嵌入一个ActiveX控件 665
使用主要属性和环境属性 666
使用活动模板库 668
创建ATL控件 668
在项目中加入COM对象 669
增加绘图代码 670
实现接口函数 673
从C++中使用控件 676
小结 677
第4部分 应用程序的体系结构 679
第18章 文档/视图体系结构 681
文档/视图概述 682
为什么使用文档/视图 682
MFC文档/视图类 683
文档/视图对资源的使用 691
用调试器探索文档/视图 692
深入调试器 693
简单的调试——跟踪进入WinMain() 693
调试器键盘命令 695
潜入文档/视图类 697
两个文档/视图范例 698
用户参数和WM-WININICHANGE消息 729
HASVIEWS数据管理 729
文档/视图的通知 730
小结 731
第19章 用图象附加库扩展应用程序 733
使用第三方库 733
ImageObject库简介 735
支持的图象文件格式 736
BMP文件格式 738
GIF文件格式 739
JPEG文件格式 739
PCX文件格式 740
TGA文件格式 740
TIF文件格式 741
使用ImageObject库 741
用ImageObject库加载图象 741
用ImageObject库保存图象 744
用ImageObject库绘制图象 747
把图象用于你的About框 750
为你的应用程序增加一个图象封面 753
裁剪和伸缩图象 755
改变图的颜色深度 756
图象处理 756
小结 759
第20章 Windows95内存管理 761
系统内存管理 764
Intel x86 32位分页寻址模式 764
Windows95的单进程地址空间 766
系统内存清理 770
进程私有内存 772
分配页 773
编译器内存分配 777
Win32私有堆 782
把内存连接到操作系统对象 788
共享内存 792
内存映射文件I/O 793
动态分配共享页 799
静态分配共享页 803
自定义资源 805
小结 806
附录A 磁盘内容及安装说明 809
附录B 名词解释 815