《精通Visual C++ 6.0》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:黄庆生等编
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:1999
  • ISBN:7115079080
  • 页数:438 页
图书介绍:

序篇 Visual C++ 6.0简介 1

1. Visual C++ 6.0新特性 2

1.1 对编译器的改进 2

1.2 对AppWiard的改进 2

1.3 更完善的MFC 3

1.4 数据库应用程序的增强支持 3

1.5 相对于Visual C++ 5.0的新特性 3

2.1 Microsoft Developer Studio 4

2.2 Visual C++ 6.0编程工具 4

2. Visual C++ 6.0开发环境简介 4

2.3 OLE服务器 5

2.4 MFC类库 5

2.5 Visual C++ 6.0的帮助系统 5

2.6 Visual C++ 6.0附带工具简介 5

3. 如何学习使用Visual C++ 6.0 5

第一章 建立一个AppWizard程序 7

1.1 什么是AppWizard? 7

1.2 迎接你的第一个AppWizard程序 8

1.2.1 第一步 9

1.2.2 第二步 10

1.2.3 第三步 11

1.2.4 第四步 13

1.2.5 第五步 14

1.2.6 第六步 14

1.3 “I am a programmer”在哪儿? 17

第二章 学习简化的程序框架 20

2.1 一个简化过的程序框架 20

2.2 WinMain( ):第一个动作 22

2.3 登记窗口类 24

2.4 创建一个窗口 26

2.5 显示窗口 28

2.6 显示消息 28

2.6.1 改写源程序 28

2.6.2 编译、链接并运行该程序 32

2.6.3 与DOS或UNIX等价程序的比较 34

2.7 窗口类与窗口对象 35

2.7.1 窗口对象 35

2.7.2 CWnd派生的窗口类 35

2.7.5 销毁窗口 36

2.7.3 注册窗口类 36

2.7.4 窗口的创建过程 36

第三章 消息循环 37

3.1 处理消息循环 37

3.1.1 程序设计中的基础事件 38

3.1.2 “I am a programmer”的消息循环 39

3.2 对事件做出响应:WindowFun( ) 41

3.3 响应不同的消息 41

3.3.1 用WM_PAINT消息跟踪屏幕 42

3.4 设备界面进行交互 46

3.3.2 WM_DESTROY消息 46

3.4.1 HDC 47

3.4.2 其它可返回设备上下文的函数 53

第四章 了解真正的程序框架 54

4.1 WinMain()函数 54

4.2 应用程序框架和源文件 59

4.2.1 文档类 59

4.2.2 视图类 64

4.2.3 主边框窗口类 69

4.2.4 子边框窗口类 74

4.2.5 应用程序类 77

4.3 工具条、状态条和打印等选项 97

4.3.1 工具条和状态条 97

4.3.2 打印选项 98

4.3.3 加入MDI支持 100

4.4 程序的控制流程 101

4.4.1 成员函数InitInstance 102

4.4.4 成员函数OnIdle 104

4.4.5 CWinApp的专门服务 104

4.4.3 成员函数ExitInstance 104

4.4.2 成员函数Run 104

第五章 熟悉Visual C++ 6.0的编程环境 106

5.1 Visual C++ 6.0主窗口 106

5.2 Visual C++ 6.0工具栏 107

5.3 Visual C++ 6.0菜单栏 108

5.3.1 “File” 菜单 108

5.3.2 “Edit” 菜单 114

5.3.3 “View” 菜单 117

5.3.4 “Insert” 菜单 120

5.3.5 “Project” 菜单 121

5.3.6 “Build” 菜单 123

5.3.7 “Debug” 菜单 126

5.3.8 “Tools” 菜单 128

5.3.9 “Window” 菜单 131

5.3.10 “Help” 菜单 132

5.4 项目与项目工作区 133

5.5 资源与资源编辑器 135

5.5.1 资源编辑器 136

5.5.2 资源符号 137

5.5.3 资源符号浏览器 138

5.5.4 对话编辑器 138

5.5.5 菜单编辑器 142

5.5.6 加速键编辑器 145

5.5.7 串编辑器 147

5.5.8 版本信息编辑器 148

5.5.9 图形编辑器 149

5.5.10 工具栏编辑器 152

6.1.1 消息映射(Message Maps) 选项卡 154

6.1 使用ClassWizard添加消息处理函数 154

第六章 ClassWizard编程 154

6.1.2 成员变量(Member Varibles)选项卡 156

6.1.3 自动化(Automation)选项卡 157

6.1.4 ActiveX事件(ActiveX Events)选项卡 159

6.1.5 类信息(Class Info)选项卡 159

6.2 ClassWizard功能介绍 161

6.3 传送鼠标消息 164

6.3.1 Windows系统最重要的事件:鼠标的移动 165

6.3.2 用鼠标绘图 171

6.3.3 鼠标绘图:改进型 177

6.4 保存鼠标绘图的信息 183

6.4.1 保存屏幕MyProg2d 183

6.4.2 修改绘图程序:MyProg2d 193

6.4.3 测试和评价 200

6.4.4 临近尾声 201

第七章 视图与文档 210

7.1 Document-View模式 210

7.1.1 为何要分成两类? 210

7.2.1 文档 211

7.1.2 Documet-View模式的MFC版本 211

7.2 从视图中分离出文档 211

7.2.2 视图 218

7.2.3 运行程序 225

7.3 保存文档 225

7.3.1 将Serialize( )补充完整 226

7.3.2 检验结果 229

7.3.3 注册一个文件类型 230

7.3.4 关于“no update” 230

7.4 再访MyProg2.cpp 231

7.4.1 什么是.INI文件 236

7.4.2 下一步怎么办? 237

第八章 图形设备接口 239

8.1 设备环境类 239

8.1.1 显示设备环境类CClientDC和 CWindowDC 240

8.1.2 构造和析构CDC对象 240

8.1.3 设备环境的状态 241

8.1.4 CPaint DC类 241

8.2.2 跟踪GCI对象 242

8.2.1 GDI对象的构造与析构 242

8.2 GDI对象 242

8.2.3 库存的GDI对象 243

8.2.4 GDI选择的有效期 244

8.2.5 持久的用于显示的设备环境——登记窗口类 245

8.3 Windows的颜色映射 245

8.3.1 标准视频图形矩阵(VGA)显示卡 246

8.3.2 256色显示卡 247

8.3.3 24位颜色显示卡 247

8.4.1 MM_TEXT映射方式 248

8.4 映射方式 248

8.4.2 “固定比例”的映射方式 249

8.4.3 坐标变换 250

8.5 字体 252

8.5.1 字体是GDI对象 252

8.5.2 选择字体 252

8.5.4 显示字体 252

8.5.5 窗口中的点——逻辑Twips 253

8.5.6 计算字符高度 253

8.6 MYPROG3例程序 254

8.7 MyProg3B程序 262

8.8 MYPROG3C例程序:使用CScrollView 266

8.8.1 MYPROG3C程序的一些元素 270

8.8.2 CScrollView的SetScaleToFitSize状态 271

第九章 对象连接与嵌入(OLE)及其自动化 272

9.1 公共对象模式(COM) 272

9.1.1 COM解决的问题 272

9.1.2 COM的实质 273

9.1.3 什么是COM接口 273

9.1.4 IUnknown接口和QueryInterface成员函数 278

9.1.5 引用计数:AddRef和Release函数 281

9.2 类厂(class factory) 281

9.2.1 COM和MFC——CCmdTarget类 283

9.2.2 OLE和窗口登记数据库 284

9.2.3 运行时刻对象登记 285

9.2.4 COM客户程序是如何调用DLL侍者程序的 285

9.2.5 COM客户程序是如何调用EXE侍者程序的 287

9.3 OLE自动化 289

9.3.1 C++与Visual Basic for Application(VBA)之间的连接 289

9.2.7 包容和继承 289

9.2.6 MFC和OLE 289

9.3.2 自动化控制程序和自动化侍者程序 290

9.3.3 属性(property)、方法(method)和集合(collection) 290

9.3.4 OLE自动化所解决的问题 291

9.4 IDispatch接口 291

9.4.1 OLD自动化程序设计 292

9.4.2 MFC IDispatch的实现 293

9.4.3 一个MFC OLE自动化侍者 293

9.4.4 一个MFC OLE自动化控制程序 294

9.4.5 VARIANT类型 296

9.4.6 CVariant类 298

9.4.7 InvoDce的参数和返回值的类型转换 301

第十章 动态连接库(DLLs) 303

10.1 为什么使用DLL 303

10.2 传统的DLL 303

10.3 MFC库DLL 304

10.3.1 MFC库DLL的使用仅限于Microsoft C++编译器 304

10.3.2 作为DLL的MFC库类 305

10.3.3 在应用中使用MFC250D.DLL 305

10.3.6 扩展DLL需要的一些代码 306

10.3.4 MFC库扩展DLL 306

10.3.5 MFC库DLL内存使用 306

10.3.7 搜索资源 307

10.3.8 内联构造函数 308

10.3.9 扩展DLL的引出 308

10.3.10 类静态数据成员 309

10.3.13 创建引入库 310

10.3.14 DLL的调试版和发行版 310

10.3.12 创建DLL 310

10.3.11 扩展DLL运行时刻类的确定 310

10.4 MyProg4A:编写自己的类库扩展DLL 311

10.4.1 MyProg4AD.DEF文件 311

10.4.2 MyProg4AD工程的Visual工作平台选项 313

10.4.3 创建引入库并拷贝DLL 314

10.5 MyProg4B:使用MFC库扩展DLL 314

10.5.1 CMyProg4bApp 315

10.5.2 CMyProg4bDoc 315

10.5.3 CMyProg4bView 315

10.6 创建并测试MyProg4B程序 317

10.5.4 CStudentDialog 317

10.7 资源访问 318

第十一章 对话框 320

11.1 在状态条上显示对话控件的帮助信息 320

11.1.1 问题的提出 320

11.1.2 实现技术 320

11.1.3 实现步骤 320

11.1.4 实现内幕 324

11.2.2 实现技术 325

11.2.3 实现步骤 325

11.2.1 问题的提出 325

11.2 利用FileOpen通用对话框打开多个文件 325

11.2.4 实现内幕 329

11.3 定制通用文件对话框 331

11.3.1 问题的提出 331

11.3.2 实现技术 331

11.3.3 实现步骤 332

11.3.4 实现内幕 336

11.4.2 实现技术 337

11.4.1 问题的提出 337

11.4 扩展和缩减一个对话框 337

11.4.3 实现步骤 338

11.4.4 实现内幕 341

11.5 显示一个模式或无模式对话框 342

11.5.1 问题的提出 342

11.5.2 实现技求 342

11.5.3 实现步骤 343

11.5.4 实现内幕 349

11.6.2 实现技术 350

11.6.1 问题的提出 350

11.6 编写定制的DDX/DDV例程 350

11.6.3 实现步骤 351

11.6.4 实现内幕 356

第十二章 剖析工具Spy++ 359

12.1 窗体 360

12.1.1 查看窗体 360

12.1.2 查看窗体详细信息 360

12.1.3 定位窗体 362

12.2 消息 363

12.2.2 “Messages” 选项卡 364

12.2.1 “Windows”选项卡 364

12.2.3 “Output” 选项卡 365

12.3 进程与线程 367

附录A Visural C++ 6.0的安装说明 370

附录B 走进C++的世界 378

B.1 类和对象的简介 378

B.1.1 C中用户自定义类型 378

B.1.2 转向C++ 379

B.1.3 构造函数 380

B.1.4 析构函数 382

B.1.5 其它的成员函数 384

B.1.6 private和public型类成员 384

B.1.7 帮助函数 385

B.1.8 对C++封装的简要说明 386

B.2 继承和多态性:一个具体的例子 386

B.2.1 轨道物体的基类和虚函数 386

B.2.2 纯虚函数 388

B.2.3 派生类 388

B.3.1 拷贝构造函数 390

B.2.4 在基类中所调用的虚函数 390

B.3 内嵌对象 390

B.3.2 赋值运算符 391

B.B.3 C++引用:提高效率 393

B.3.4 内嵌对象创建的总结 396

B.3.5 内嵌对象的析构 397

B.4 在堆中申请对象 397

B.4.1 C++的new和delete运算符 397

B.4.2 通过指针来引用对象 398

B.4.3 虚析构函数 399

B.5 全程对象的申请 400

B.6 对象之间的相互关系:指针数据成员 401

B.7 this指针的使用 402

B.8 对指针的引用 403

B.9 友元类和友元函数 404

B.9.1 友元类 404

B.9.2 全程友元函数 405

B.10 静态类成员 406

B.10.1 静态数据成员 406

B.10.3 静态成员函数 407

B.10.2 枚举类型——实现静态数据成员的捷径 407

B.11.1 成员函数运算符 409

B.11 重载运算符 409

B.11.2 转换运算符 411

B.11.3 辅助运算符(helper operator) 412

B.12 从代码中分离出类定义 413

附录C 匈牙利表示法 416

D.1 TRACE 418

D.1.1 几种模式 418

附录D 代码调试 418

D.1.2 使用TRACE 419

D.2 调试框架 420

D.2.1 AssertValid( ) 423

D.2.2 防御型的编程方式 424

D.2.3 关于Dump( ) 425

D.3 自我诊断 425

D.4 调试代码的作用 432

D.5 用Dum( )显示对象的信息 433

D.6 检查内存 435