《Windows 2000编程核心技术精解》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)Clayton Walnum著;杜大鹏等译
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2002
  • ISBN:7508408977
  • 页数:732 页
图书介绍:

译者序 1

作者简介 1

致谢 1

前言 1

第一部分 Windows2000编程基础知识 1

第1章 应用程序基础 1

1.1 Win32应用程序 1

1.1.1 传统的Win32应用程序 2

1.1.2 Win32控制台应用程序 2

1.1.3 动态链接库 3

1.1.4 ActiveX控件 3

1.2 Windows 编程的艰苦方法 5

1.3.1 初始化应用程序 11

1.3 MFC与C的对比 11

1.3.2 MFC的消息处理 12

1.4 本章小结 15

第2章 图形设备接口的基本知识 16

2.1 GDI简介 17

2.2 设备描述环境 17

2.3 绘图设备描述环境 19

2.3.1 客户区的设备描述环境 21

2.3.2 图元文件的设备描述环境 26

2.4 设备能力 30

2.5 CPen类 32

2.6 CBrush类 35

2.7 本章小结 40

第3章 窗口和对话框 41

3.1.2 CCmdTarget类 42

3.1.1 CObject类 42

3.1 MFC窗口基类 42

3.1.3 CWnd类 43

3.2 框架和视图窗口 45

3.2.1 CFrameWnd类 45

3.2.2 CView类 46

3.3 窗口基础:不使用AppWizard而创建应用程序 47

3.3.1 创建BasicApp应用程序 47

3.3.2 理解BasicApp应用程序 52

3.4 窗口样式 55

3.4.1 创建窗口样式 56

3.4.2 在非MFC程序中的窗口样式 58

3.5 MDI窗口 61

3.6 对话框 63

3.7.1 文件对话框 69

3.7 通用对话框 69

3.7.2 字体对话框 73

3.7.3 颜色对话框 75

3.7.4 通用对话框应用程序 77

3.8 属性页 81

3.8.1 创建属性页面和属性页 82

3.8.2 属性页的编程 84

3.8.3 PropSheet应用程序 86

3.9 向导 87

3.9.1 创建向导 87

3.9.2 设置向导的按钮 87

3.9.3 WizardApp应用程序 89

3.10 本章小结 90

4.1 显示文本 91

第4章 文本 91

4.2 设置文本颜色 92

4.3 设置字符间距 95

4.4 设置文本的对齐方式 96

4.4.1 水平文本对齐 97

4.4.2 竖直文本对齐 99

4.5 获得文本的规格 104

4.6 创建字体 106

4.7 本章小结 113

第5章 菜单 114

5.1 创建菜单资源 114

5.2 创建消息响应函数 116

5.3 理解菜单UI函数 119

5.3.1 创建更新命令UI函数 119

5.3.2 用选择标记志记菜单项 120

5.3.3 为菜单项加上项目符号 121

5.3.4 使菜单项生效或失效 122

5.3.5 改变菜单项的文本 122

5.4 MenuApp示例应用程序 124

5.4.1 使用MenuApp示例应用程序 125

5.4.2 理解MenuApp示例应用程序 126

5.5 本章小结 131

第6章 标准控件 132

6.1 标准控件简介 132

6.2 在非对话框窗口中放置控件 133

6.3 运行ControlApp2示例应用程序 134

6.4 创建标准控件并对其编程 137

6.4.1 静态控件 138

6.4.2 编辑控件 141

6.4.3 按钮 146

6.4.4 复选框 149

6.4.5 单选钮 150

6.4.6 列表框 152

6.4.7 复合列表框 157

6.5 改变控件颜色 160

6.6 在对话框中操作控件 164

6.6.1 创建应用程序的框架 165

6.6.2 创建新对话框 168

6.6.3 向视图类中添加源代码 171

6.6.4 向对话框类中添加源代码 173

6.6.5 运行DialogControlsApp 179

6.6.6 理解DialogControlsApp 179

6.7 本章小结 181

第7章 通用控件 182

7.1 通用控件简介 182

7.2 基本通用控件 183

7.2.1 CommonControlsApp示例程序 183

7.2.2 理解OnCreate()函数 184

7.2.3 进度条控件 185

7.2.4 滑动条控件 188

7.2.5 微调控制器控件 199

7.2.6 图像列表控件 202

7.3 高级通用控件 207

7.3.1 CommonControlsApp2示例应用程序 207

7.3.2 理解OnCreate()函数 210

7.3.3 列表视图控件 211

7.3.4 树状视图控件 228

7.4 本章小结 240

第8章 打印 241

8.1 Windows中打印概述 241

8.1.1 打印文档的六步曲 241

8.1.2 BasicPrintApp示例程序 244

8.2 在MFC应用程序中打印文本 248

8.2.1 PrintApp示例应用程序 249

8.2.2 用于打印的MFC成员函数 249

8.3 在MFC应用程序中打印图形 259

8.3.1 PrintCircleApp示例应用程序 259

8.3.2 在屏幕和打印机之间进行缩放 260

8.3.3 OnCreate()函数 262

8.3.4 OnDraw()函数 263

8.3.5 OnPreparePrinting()函数 264

8.4 本章小结 271

第二部分 Windows 2000高级编程 273

第9章 位图 273

9.1 DDB和DIB简介 273

9.2 对与设备相关的位图的编程 274

9.2.1 创建并初始化位图对象 274

9.2.2 创建内存DC 276

9.2.3 把位图选入内存DC中 276

9.2.4 绘制位图 277

9.2.5 把位图复制到显示设备上 278

9.2.6 不改变其尺寸而复制位图 278

9.2.7 复制位图并改变其尺寸 279

9.2.8 创建BitmapApp应用程序 281

9.3 对与设备无关的位图的编程 287

9.2.9 运行BitmapApp应用程序 287

9.3.1 加载DIB文件 288

9.3.2 自定义CDib类 293

9.3.3 显示DIB 297

9.3.4 管理调色板 298

9.3.5 创建BitmapApp2应用程序 302

9.3.6 定制应用程序的资源 303

9.3.7 添加源代码 307

9.3.8 运行BitmapApp2应用程序 312

9.4 本章小结 325

第10章 高级GDI 326

10.1 物理和逻辑坐标 326

10.2 映射模式 327

10.2.1 试验窗口和视区原点 328

10.2.2 MM_TEXT模式 331

10.2.3 使用物理度量单位来映射 333

10.2.4 把逻辑单位缩放成任意坐标 335

10.3 光栅操作 341

10.3.1 位图光栅操作 342

10.3.2 线绘图模式 346

10.4 使用区域 352

10.4.1 创建并绘制区域 352

10.4.2 组合区域 354

10.5 使用路径 358

10.5.1 创建路径 358

10.5.2 提交路径 359

10.5.3 定义子路径 359

10.5.4 PathApp示例程序 360

10.6 本章小结 363

第11章 Windows用户界面的编程 364

11.1 使用拖放 364

11.1.1 注册为拖放应用程序 364

11.1.2 处理WM_DROPFILES消息 365

11.1.3 获得放下的文件名 366

11.1.4 结束拖放操作 366

11.1.5 DragDrop2应用程序 366

11.2 操作快捷方式 367

11.2.1 初始化COM 368

11.2.2 创建IShellLink对象 368

11.2.3 获得IPersistFile接口指针 369

11.2.4 初始化新的快捷方式 369

11.2.5 保存快捷方式 370

11.2.7 快捷方式示例应用程序 371

11.2.6 释放指针并使COM回到初始化前的状态 371

11.3 操作系统托盘中的图标 372

11.3.1 向托盘中添加图标 373

11.3.2 响应图标事件 374

11.3.3 从托盘中删除图标 375

11.3.4 TrayApp示例应用程序 375

11.4 shell名称空间 377

11.4.1 枚举文件夹的内容 378

11.4.2 NamespaceApp应用程序 378

11.5 Windows 2000的高级特性 383

11.5.1 DNA 383

11.5.2 活动目录 383

11.5.3 MTS 384

11.6 本章小结 384

12.2 如何组织注册表 385

第12章 注册表 385

12.1 注册表概述 385

12.3 操作注册表 388

12.3.1 使用注册表编辑器 388

12.3.2 使用注册表文件 389

12.3.3 使用注册表API 390

12.4 RegistryApp示例程序 391

12.4.1 向注册表中写入用户参数选择 392

12.4.2 从注册表中读取用户参数选择 396

12.5 本章小结 398

第13章 安装用户应用程序 400

13.1 产品打包 400

13.2.1 确定要打包的文件 401

13.2.2 创建要安装的应用程序 401

13.2 使用InstallShield 401

13.2.3 启动InstallShield工程 403

13.2.4 完成部件设置 408

13.2.5 完成文件组设置 411

13.2.6 创建媒体 413

13.3 本章小结 419

第三部分 操作系统核心编程 420

第14章 进程控制 420

14.1 进程、线程和优先权 420

14.2 工作线程和用户界面线程 422

14.2.1 创建一个工作线程 422

14.2.2 创建用户界面线程(UI Thread) 425

14.3 线程同步 429

14.3.1 使用事件对象 429

14.3.2 使用临界段 437

14.3.3 使用互斥体(Mutex) 439

14.3.4 使用信号 442

14.4 本章小结 446

第15章 输入设备:鼠标和键盘 447

15.1 输入事件和消息 447

15.2 处理鼠标 447

15.2.1 客户区的鼠标消息 448

15.2.2 非客户区鼠标消息 449

15.2.3 Mouse示例应用程序 450

15.3 处理键盘 456

15.3.1 键盘消息 456

15.3.2 Keys示例应用程序 457

15.3.3 试验Keys应用程序 457

15.3.4 KeyDown示例应用程序 459

15.3.5 测试KeyDown应用程序 462

15.4 本章小结 465

第16章 文件处理 466

16.1 文档/视图结构 466

16.1.1 步骤1:创建框架应用程序 467

16.1.2 步骤2:声明文档的数据对象 468

16.1.3 步骤3:完成OnNewDocument()函数 468

16.1.4 步骤4:重载DeleteContents()函数 468

16.1.5 步骤5:完成Serialize()函数 469

16.1.6 步骤6:完成OnDraw()函数 471

16.1.7 步骤7:添加编辑代码 472

16.2 永久性的对象 473

16.3 用CFile类处理文件 481

16.4 本章小结 485

17.1 标准格式 486

第17章 剪贴板 486

17.1.1 Clipboard(剪贴板)示例应用程序 487

17.1.2 把位图拷入剪贴板中 488

17.1.3 粘贴来自剪贴板的位图 492

17.2 已注册的和私有的剪贴板格式 495

17.3 多种剪贴板数据格式 500

17.3.1 多种格式的运用 500

17.3.2 用多种格式复制CirleApp数据 502

17.3.3 用多种格式粘贴CircleApp的数据 505

17.4 本章小结 508

第18章 ActiveX简介 510

18.1 OLE 1.0 510

第四部分 ActiveX编程 510

18.2 OLE 2.0 512

18.3 组件对象模型(COM) 513

18.4 ActiveX 514

18.5 COM+ 515

18.6 ActiveX应用程序和组件 515

18.6.1 ActiveX容器应用程序 515

18.6.2 ActiveX服务器应用程序 516

18.6.3 ActiveX自动化应用程序 517

18.6.4 ActiveX控件 517

18.6.5 ActiveX文档 518

18.7 本章小结 518

第19章 容器 520

19.1 创建容器应用程序框架 520

19.2 管理嵌入对象的大小和位置 523

19.3 使用鼠标来选定项目 525

19.4 本章小结 532

第20章 服务器 533

20.1 创建服务器应用程序框架 533

20.2 定制应用程序的资源 536

20.3 完成应用程序的文档类 540

20.4 完成服务器项目的类 541

20.5 完成视图类 542

20.6 运行服务器应用程序 543

20.6.1 作为独立的应用程序运行ServerApp 543

20.6.2 作为就地编辑(In-Place)器运行ServerApp 544

20.6.3 作为链接项目的编辑器来运行ServerApp 545

20.7 本章小结 547

21.1 自动化服务器应用程序 549

第21章 自动化 549

21.1.1 创建自动化服务器框架 550

21.1.2 定制自动化服务器的资源 551

21.1.3 完成自动化服务器的文档类 552

21.1.4 完成自动化服务器的视图类 554

21.1.5 定义服务器的属性和方法 556

21.2 自动化客户端应用程序 559

21.2.1 创建自动化客户端框架 559

21.2.2 定制客户端应用程序的资源 560

21.2.3 完成客户端应用程序的视图类 561

21.2.4 在客户应用程序中初始化ActiveX 564

21.3 从客户中控制服务器 564

21.4 本章小结 567

第22章 ActiveX控件 568

22.1 创建ActiveX控件框架 568

22.2 创建ActiveX控件的用户界面 570

22.3 创建属性和方法 574

22.4 响应控制按钮 577

22.5 测试ActiveX控件 578

22.6 本章小结 580

第五部分 多媒体编程 581

第23章 DirectDraw 581

23.1 创建DirectDraw程序 582

23.2 向Visual C++工程添加DirectDraw文件 582

23.2.1 向程序中添加ddraw.h头文件 583

23.2.2 向程序中添加ddraw.lib文件 583

23.3 创建DirectDraw对象 584

23.5 设置显示模式 585

23.6 创建主DirectDraw表面 585

23.4 设置屏幕访问级别 585

23.7 创建离屏表面 587

23.8 创建DirectDraw调色板 587

23.9 探索DirectDrawApp示例程序 588

23.9.1 DiretDrawApp的OnInitialUpdate()函数 589

23.9.2 DirectDrawApp的InitMemberVariables()函数 590

23.9.3 DirectDrawApp的InitDirectDraw()函数 591

23.9.4 DirectDrawApp的CreateDDrawSurface()函数 591

23.9.5 DirectDrawApp的ClearDDrawSurface()函数 592

23.9.6 DirectDrawApp的CreateOffScreenSurface()函数 594

23.9.7 DirectDrawApp的InitImages()函数 595

23.9.8 DirectDrawApp的CreateDDrawPal()函数 595

23.9.9 DirectDrawApp的DibTosurface()函数 596

23.9.10 DirectDrawApp的OnTimer()函数 598

23.9.11 DirectDrawApp的OnKeyDown()函数 599

23.9.12 DirectDrawApp的OnDestroy()函数 600

23.10 本章小结 605

第24章 DirectSound 607

24.1 创建DirectSound程序 607

24.2 向Visual C++工程添加DirectSound文件 608

24.2.1 添加dsound.h头文件 608

24.2.2 添加dsound.lib文件 608

24.3 创建DirectSound对象 609

24.4 设置音频硬件访问级别 609

24.5 探索DirectSoundApp应用程序 610

24.5.1 DirectSoundApp 的视图类构造函数 611

24.5.2 DirectSoundApp的OnInitialUpdate()函数 612

24.5.3 DirectSoundApp的InitDirectSound()函数 613

25.5.4 DirectSoundApp的CreateSoundBuffer()函数 613

24.5.5 CWave类 614

24.5.6 DirectSoundApp 的LoadWaveData()函数 617

24.5.7 DirectSoundApp的OnLButtonDown()函数 618

24.5.8 DirectSoundApp的OnDestroy()函数 619

24.6 本章小结 624

第25章 Directinput 626

25.1 创建Directinput程序 626

25.2 向Visual C++工程中添加DirectInput文件 627

25.2.1 添加dinput.h头文件 627

25.2.2 添加dinput.lib及dxguid.lib文件 627

25.3 创建DirectInput对象 628

25.4 创建DirectInput设备 629

25.5 设置数据格式 629

25.8 探索DirectInputApp应用程序 630

25.7 获取设备 630

25.6 设置设备访问级别 630

25.8.1 DirectInputApp的视图类构造函数 631

25.8.2 DirectInputApp的OnInitialUpdate()函数 632

25.8.3 DirectInputApp的OnTimer()函数 634

25.8.4 DirectInputApp的OnDraw()函数 635

25.8.5 DirectInputApp的OnDestroy()函数 635

25.9 本章小结 640

第26章 Direct3D 642

26.1 创建Direct3D程序 642

26.2 创建Direct3D主对象 643

26.3 创建裁剪器对象 644

26.4 创建Direct3D设备 644

26.6 创建对象使用的网格 646

26.5 创建根帧 646

26.7 创建网格使用的帧 647

26.8 视区 648

26.8.1 创建视区帧 648

26.8.2 创建视区 649

26.9 添加光线 649

26.9.1 创建光线对象 649

26.9.2 创建光线的子帧 650

26.10 Direct3D示例应用程序 651

26.10.1 构建新的Direct3D应用程序 651

26.10.2 运行Direct3DApp 654

26.10.3 编写不使用AppWizard的MFC应用程序 655

26.11 本章小结 674

第27章 WinInet 675

27.1 WinInet概述 675

第六部分 Internet编程 675

27.1.1 CInternetSession类 676

27.1.2 CInternetConnection类 677

27.1.3 CHttpConnection类 677

27.1.4 CFtpConnection类 677

27.1.5 CInternetFile类 678

27.1.6 CHttpFile类 679

27.1.7 CFileFind类 679

27.1.8 CFtpFileFind类 680

27.1.9 CInternetException类 681

27.2 编写HTTP应用程序 681

27.2.1 开始因特网会话 681

27.2.3 从HTTP服务器上读取文件 682

27.2.2 打开与HTTP服务器的连接 682

27.2.4 关闭连接与会话 683

27.2.5 创建HTTP会话 683

27.3 编写FTP应用程序 684

27.3.1 打开FTP连接 684

27.3.2 获取根目录 685

27.3.3 读取目录 685

27.3.4 关闭连接与会话 686

27.4 运行FTPAccessApp应用程序 686

27.5 创建FTPAccessApp示例应用程序 688

27.5.1 考察成员变量 688

27.5.2 创建OnDraw()函数 689

27.5.3 创建OnFTPConnect()函数 691

27.5.4 创建OpenFTPDirectory()函数 692

27.5.5 创建ReadFileNames()函数 693

27.5.6 创建OnLButtonDbICIk()函数 694

27.5.7 创建OnRButtonDown()函数 695

27.5.8 创建DownLoadFile()函数 696

27.5.9 创建MoveToPreviousDirectory()函数 697

27.5.10 创建DisplayStatusMessage()函数 698

27.5.11 创建InitSelection()函数 698

27.6 本章小结 699

第28章 Internet Explorer 700

28.1 Internet Explorer组件 700

28.2 创建骨架浏览器应用程序 702

28.2.1 编译MyBrowser 704

28.2.2 配置WebBrowser控件 705

28.2.3 用WebBrowser组件导航 706

28.3 使用HTML对话框 710

28.3.2 在对话框里工作 714

28.3.1 包括HTML资源 714

28.4 使用Dynamic HTML(动态HTML) 715

28.4.1 DHTML对象模型简介 715

28.4.2 访问文档接口 718

28.4.3 使用对象模型 719

28.4.4 扩展DHTML对象模型 719

28.5 发布浏览器控件 724

28.5.1 用注册表确定版本 724

28.5.2 用shdocvw.dll确定版本 725

28.5.3 使用最小化安装 726

28.5.4 IE 5.0卸载须知 726

28.6 运行MyBrowser 727

28.7 本章小结 729

附录 关于本书所附光盘 730

光盘内容 730