《Visual C++ .NET编程宝典》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:牛力,傅韵等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2006
  • ISBN:712102134X
  • 页数:717 页
图书介绍:本书主要介绍Visual C++ .NET的开发环境、语法规则以及Visual C++ .NET的种种新特性。如何在Visual Studio .Net集成开发环境中提高程序开发的效率,介绍ADO.NET和XML技术,并通过详细的步骤介绍如何创建Windows窗体、ASP.NET应用程序和Web服务。

第1部分 用户界面 1

1.1 Visual Studio环境概览 2

第1章 MFC应用程序初接触 2

1.2 创建第一个Visual Studio项目 4

1.2.1 视图简介 7

1.2.2 为按钮添加事件处理程序 8

1.2.3 使用Dialog Editor和Toolbox添加控件 10

1.2.4 创建DDX变量 11

1.3 更正生成错误 13

1.4 在Visual Studio环境中调试代码 14

1.4.1 设置断点 15

1.4.2 步进执行MFC源代码 16

1.5 处理消息 18

1.6 处理子事件 22

1.8 小结 23

1.7 重载基类函数 23

2.2 文档/视图体系结构设计 24

2.1 文档、视图及其相互关系 24

第2章 了解文档、视图和单文档界面 24

2.3 CDocument类 25

2.3.1 声明文档类 26

2.3.2 CDocument类的成员函数 27

2.3.3 处理消息 28

2.3.5 复杂文档数据的处理 29

2.3.4 重载虚文档函数 29

2.3.6 CCmdTarget和CDocItem类 32

2.4 InitInstance函数 33

2.4.1 文档和视图管理 34

2.4.3 文档模板资源 35

2.4.2 框架窗口 35

2.4.4 字符串资源和文档模板 36

2.4.5 常用视图资源 37

2.4.7 使用多个模板 38

2.4.6 文档模板的生命周期 38

2.4.8 CDocManager类 39

2.5 CView类 40

2.4.9 删除模板 40

2.5.1 声明视图类 41

2.5.2 CView类的成员函数 42

2.5.4 CView类的派生类 43

2.5.3 视图和消息 43

2.5.6 返回框架窗口 44

2.5.5 CForm视图与基于对话框的应用程序 44

2.5.7 OnCreate函数 45

2.6.1 去掉文档名 46

2.6 控制标题栏文本 46

2.7 HexViewer SDI应用程序 47

2.6.2 格式化标题栏文本 47

2.7.1 打开和读取文件 48

2.7.2 视图编码 52

2.8 小结 55

3.1 MDI结构和 SDI结构之比较 56

第3章 多文档界面应用程序 56

3.2.2 使用文档的多个视图 57

3.2.1 使用多文档类型 57

3.2 文档、视图和框架窗口的组合 57

3.2.3 CMDIFrameWnd类 59

3.2.4 CMDIChildWnd类 60

3.2.7 MDI应用程序 61

3.2.6 使CDocument类的开销 61

3.2.5 CMultiDocTemplate类 61

3.3 PaintObj程序 62

3.4 拆分窗口 69

3.4.1 CSplitterWnd类 70

3.4.2 动态拆分器 71

3.4.3 在动态窗格中使用不同的视图 72

3.4.5 对与多个文档关联的视图使用拆分器 73

3.4.4 CRuntimeClass 对象 73

3.4.7 创建静态拆分器 74

3.4.6 静态拆分器 74

3.4.8 共享滚动条简介 75

3.5 Dynsplit程序 76

3.4.10 拆分器的性能考虑 76

3.4.9 确定实际尺寸和理想尺寸 76

3.6 小结 81

4.1 创建和编辑菜单 82

第4章 菜单和快捷键 82

4.1.1 定义菜单 83

4.1.2 编写菜单事件处理程序 87

4.1.3 编写简单的菜单代码 89

4.1.4 组合菜单处理程序 90

4.2.1 检查键盘输入 91

4.2 快捷键 91

4.2.3 创建快捷键表资源 92

4.2.2 定义快捷键 92

4.2.5 选择适当的快捷键 93

4.2.4 创建快捷键菜单提示 93

4.2.6 原始Windows API的快捷键支持 94

4.2.7 将快捷键表连接到窗口类 95

4.3.1 菜单命令范围 96

4.3 动态更改菜单 96

4.3.3 更改弹出菜单 97

4.3.2 在运行时更改菜单 97

4.3.4 久句柄映射和临时句柄映射 99

4.4 上下文菜单 100

4.5 小结 101

5.2.1 创建鼠标消息处理程序 102

5.2 鼠标输入 102

第5章 鼠标和键盘输入处理 102

5.1 事件 102

5.2.2 在屏幕坐标和窗口坐标之间转换 103

5.2.3 创建处理鼠标事件的MFC程序 104

5.2.4 非工作区鼠标事件 110

5.2.5 更改鼠标光标的形状 111

5.2.6 创建更改鼠标光标的MFC程序 112

5.2.7 捕获鼠标 115

5.3.1 物理键盘 116

5.3 键盘输入 116

5.3.3 可打印字符消息 117

5.3.2 Windows逻辑键盘 117

5.3.4 回显键盘焦点 118

5.4 小结 123

6.1 创建和控制状态栏 124

第6章 状态栏和工具栏 124

6.1.1 默认的状态栏行为 125

6.1.2 对齐状态栏 126

6.1.3 给状态栏添加文本窗格 127

6.1.4 在对话框上放置状态栏 128

6.1.5 状态栏示例程序 131

6.1.6 给状态栏添加进度条 133

6.2.1 MFC控件栏 142

6.2 创建和控制工具栏 142

6.2.2 创建并初始化工具栏 143

6.2.4 显示和隐藏工具栏 144

6.2.3 停靠和浮动工具栏 144

6.2.5 添加“工具提示”和“浮动文本” 145

6.2.7 更新非按钮控件 146

6.2.6 添加非按钮控件 146

6.2.9 添加ReBar支持 147

6.2.8 使ReBar控件 147

6.3 小结 148

第7章 树视图控件和列表视图控件 149

7.1.1 相关基础知识 150

7.1 树视图控件 150

7.1.2 CTreeCtrl类 151

7.1.4 处理CTreeCtrl消息 152

7.1.3 创建CTreeCtrl对象 152

7.1.5 在CTreeCtrl中插入项 157

7.1.6 编辑标签 158

7.1.7 在编辑CTreeCtrl项的同时处理Esc键和Enter键 160

7.1.8 上下文菜单 161

7.1.9 展开和折叠树视图控件分支 163

7.1.10 CTreeCtrl示例程序 164

7.2 列表视图控件 171

7.2.2 创建和关联CImageList对象 172

7.2.1 CListCtrl类 172

7.2.3 设置和更改视图风格 173

7.2.4 向CListCtrl 中添加列 174

7.2.5 调整列表视图的列的宽度 175

7.2.6 插入列表视图项 177

7.3 小结 178

8.1.1 图形类型 179

8.1 图形设备界面简介 179

第8章 图形设备界面编程 179

8.1.2 GDI设备 180

8.2 设备上下文 181

8.1.3 GDI设备类型 181

8.2.1 DC绘图属性 182

8.2.3 绘制坐标 184

8.2.2 WM PAINT消息 184

8.2.5 响应WM PAINT 以外的消息进行绘图 185

8.2.4 触发WM PAINT消息 185

8.3 控制文本 186

8.3.1 GDI颜色支持 187

8.3.2 文本颜色 188

8.3.3 对齐文本 189

8.4.1 将对象选入 DC 190

8.4 字体 190

8.3.4 调整文本 190

8.4.3 选择非常备字体 191

8.4.2 选择常备字体 191

8.5 使用画笔和画刷 194

8.5.1 画笔 195

8.5.2 画刷 197

8.6 映射模式 198

8.7 栅操作 199

8.7.1 文本绘制函数 200

8.7.2 计算文本坐标 201

8.8 剪辑区域 205

8.9 小结 206

9.1 位图和视频内存 207

第9章 位图和调色板 207

9.2 创建CBitmap 对象 208

9.3 加载和设置位图内容 209

9.4 把CBitmap绘制到屏幕上 210

9.4.1 绘制位图 211

9.4.2 创建和显示位图 212

9.5 光栅操作 214

9.6 BlitDemo程序 216

9.7 调色板和颜色 222

9.7.1 其他颜色空间 223

9.7.2 逻辑调色板 225

9.7.4 SetSystemPaletteUse 数 227

9.7.3 调色板事件 227

9.8.1 DIB文件剖析 228

9.8 设备无关位图 228

9.8.2 CDib类 229

9.8.3 ShowDIB示例程序 235

9.9 缓冲 237

9.10 小结 240

第2部分 对话框 241

10.1.1 定义CDialog派生类 242

10.1 从对话框和控件开始 242

第10章 对话框基础知识及常用控件简介 242

10.1.2 CDialog的主要成员 243

10.1.3 显示和控制模态对话框 244

10.1.4 命令处理路由和默认处理 245

10.1.5 控件也是窗口 247

10.1.6 把MFC类与控件关联起来 248

10.2 使用CButton类 255

10.2.1 下压按钮 256

10.2.2 单选按钮 257

10.2.3 复选框控件 261

10.2.4 位图按钮 262

10.2.5 使用BS_BITMAP 风格 264

10.3.1 使用DDX传送数据 267

10.3 使用CEdit类 267

10.3.2 使用编辑控件 269

10.3.3 修改示例程序 271

10.4 使用CListBox类 273

10.4.2 选择和查找选项 274

10.4.1 添加和删除选项 274

10.4.3 使用选项数据 275

10.5 使用CComboBox类 277

10.6.1 改变控件的颜色 278

10.6 修改控件运行时的属性 278

10.6.2 设置控件的字体 279

10.6.3 循环遍历对话框中的控件 280

10.7 小结 281

11.1 模态对话框 282

第11章 对话框和窗体视图 282

11.1.1 创建和显示无模态对话框 283

11.1.2 交换数据和状态 284

11.1.3 示例程序 287

11.2 CommandUI和KickIdle 293

11.3 键盘快捷键 296

11.4 截获键盘输入 297

11.5 串行化基于对话框的应用程序 298

11.5.3 从磁盘读取数据 299

11.5.2 实现Serialize虚函数 299

11.5.1 让每个类可串行化 299

11.5.5 基于对话框的串行化示例程序 300

11.5.4 将数据保存到磁盘 300

11.6 为SDI和MDI应用程序创建窗体视图 304

11.6.1 创建SDI窗体视图应用程序 305

11.6.2 在文档的多个视图之间进行切换 306

11.7 MFC控件视图 309

11.7.2 CListView的工作原理 310

11.7.1 常见误解 310

11.7.3 创建CListBoxView类 311

11.8 小结 313

11.7.4 使用CListBoxView类 313

12.1 CPropertySheet类和CPropertyPage类 315

第12章 属性单和属性页 315

12.1.3 显示模态属性单 316

12.1.2 创建CPropertyPage类 316

12.1.1 创建属性页 316

12.1.4 显示无模态属性单 317

12.1.5 在对话框内显示属性单 318

12.2 模态属性单示例程序 321

12.3.1 去除标准按钮 324

12.3 高级技巧和提示 324

12.3.2 重定位标准按钮 326

12.3.4 禁用选项卡 327

12.3.3 更改标准按钮的标题 327

12.3.5 重新启用属性页 330

12.3.6 动态设置CPropertyPage选项卡的标题 332

12.3.7 更改选项卡的字体 334

12.3.8 利用CPropertyPage选项卡的助记符 335

12.4 小结 336

第3部分 高级编程 337

13.1.1 处理NMCUSTOMDRAW通知 338

13.1 自己绘制和自定义绘制 338

第13章 自定义绘制控件 338

13.2.1 创建类 340

13.2 创建自定义绘制控件 340

13.1.2 为什么要进行自定义绘制 340

13.2.2 CListCtrlWithCustomDraw类 341

13.2.3 使用CListCtrlWithCustomDraw类 349

13.3 小结 351

14.1.1 修改基类 352

14.1 添加行为 352

第14章 为控件添加自定义行为 352

14.1.2 多重继承 353

14.1.3 消息映射 356

14.1.4 模板类 357

14.1.5 结合使用多重继承和模板 358

14.1.6 消息映射的问题 359

14.1.7 错误 361

14.2.2 模板友好的消息映射 364

14.2.1 问题 364

14.2 调整对话框和属性页 364

14.2.3 多重继承 366

14.2.4 模板类 368

14.2.6 调整对话框中控件的尺寸 371

14.2.5 将代码集中到一起 371

14.2.7 使用TXResizable 377

14.3 小结 378

15.1 使用Win32 SDK实现打印 379

第15章 打印和打印预览 379

15.1.1 简单的打印示例程序 380

15.1.2 退出打印作业 382

15.2.1 打印过程中开发人员和框架的作用 387

15.2 用MFC进行打印 387

15.2.2 理解MFC打印序列 388

15.2.3 “所见即所得”打印示例程序 390

15.3.1 打印预览过程 394

15.3 打印预览的体系结构 394

15.3.3 增强应用程序的打印预览功能 395

15.3.2 修改打印预览 395

15.4 CPrintDialog类 397

15.5 小结 398

16.1.2 加载DLL 399

16.1.1 动态库和静态库 399

第16章 动态链接库 399

16.1 DLL概述 399

16.2 常规DLL 400

16.2.1 创建常规DLL 401

16.2.3 实现自己的DllMain函数 402

16.2.2 理解常规DLL内核 402

16.2.4 动态加载DLL 403

16.2.5 编写Windows挂钩函数 409

16.2.6 使用DLL的全局C++对象 415

16.3 MFC扩展DLL 421

16.3.3 导出资源 422

16.3.2 通过MFC扩展DLL导出类 422

16.3.1 理解MFC扩展DLL内核 422

16.3.4 编写在DLL中封装文档和视图的示例程序 423

16.4 小结 427

17.1 使用线程 428

第17章 多线程编程 428

17.1.1 创建辅助线程 429

17.1.2 编写线程函数 431

17.1.3 创建UI线程 432

17.1.5 使线程睡眠 434

17.1.4 挂起和继续执行线程 434

17.1.6 从一个线程终止另一个线程 435

17.1.7 线程、进程和优先级 438

17.3 多线程示例程序 439

17.2 在线程之间共享MFC对象 439

17.1.8 进程优先级类 439

17.4 小结 444

18.1.1 抛出异常 445

18.1 异常处理语法 445

第18章 MFC异常处理 445

18.2 CException类 446

18.1.2 捕获异常 446

18.2.2 从CException对象中检索错误信息 447

18.2.1 创建和删除CException对象 447

18.2.3 捕获多种异常类型 448

18.3 定义CException派生类 449

18.3.1 了解CFileException类 450

18.3.2 CFileException示例程序 451

18.3.3 定义自己的CException派生类 453

18.4.1 确定应该捕获异常的函数 456

18.4 高级异常处理技术 456

18.4.2 确定放置在try块中的代码 457

18.4.3 确定放置在catch块中的代码 458

18.4.4 从虚函数中抛出异常 459

18.5 小结 462

第4部分 数据输入/输出 463

19.1.1 为数据分配内存空间 464

19.1 使用Windows剪贴板API 464

第19章 剪贴板 464

19.1.2 把数据复制到全局内存中 465

19.1.6 设置剪贴板数据 466

19.1.5 清空剪贴板 466

19.1.3 解除对全局内存的锁定 466

19.1.4 打开剪贴板 466

19.2.1 创建SimpleTextTransfer示例程序 468

19.2 传递纯文本的示例程序 468

19.1.7 关闭剪贴板 468

19.2.2 把文本复制到剪贴板上 469

19.2.4 粘贴剪贴板上的文本 470

19.2.3 把文本剪切到剪贴板上 470

19.2.5 测试SimpleTextTransfer示例程序 471

19.3.1 创建BitmapTransfer示例程序 472

19.3 转移位图图像的示例程序 472

19.3.2 粘贴剪贴板中的位图图像 473

19.3.4 把位图图像复制到剪贴板上 474

19.3.3 对Paste Bitmap按钮的功能进行测试 474

19.3.5 测试把位图复制到剪贴板上的功能 477

19.4.2 把自定义数据格式复制到剪贴板上 478

19.4.1 创建CustomDataTransfer示例程序 478

19.4 转移自定义数据的示例程序 478

19.4.3 把自定义数据复制到剪贴板上 479

19.4.4 从剪贴板上粘贴自定义数据 480

19.5 接收剪贴板上内容已被修改的通知消息 482

19.4.5 测试CustomDataTransfer示例程序 482

19.6 小结 487

20.1 ODBC定义和数据库术语 488

第20章 ODBC 488

20.2.1 ODBC的工作方式 490

20.2 ODBC:标准化需求的产物 490

20.2.3 ODBC SQL一致性层 491

20.2.2 ODBCAPI一致性层 491

20.3.1 配置ODBC 492

20.3 实现ODBC 492

20.3.2 连接数据源 493

20.3.4 准备和执行SQL请求 495

20.3.3 查询数据和数据源 495

20.3.5 检索数据 496

20.3.6 断开与数据源的连接 497

20.4 使用ODBC获取数据 498

20.4.2 为Visual C++项目添加对ODBC的支持 499

20.4.1 创建ODBC DSN 499

20.4.3 修改ODBCDemo对话框 500

20.4.4 添加初始化程序和数据库代码 501

20.5 使用ODBC动态查询数据源 505

20.5.1 CODBCDynamic类声明 506

20.5.2 了解CODBCDynamic类的工作方式 507

20.5.3 使用CODBCDynamic类 512

20.6 小结 513

21.1 CDatabase 对象 514

第21章 MFC数据库类 514

21.1.1 使用CDatabase∷Open函数 515

21.1.2 使用CDatabase∷OpenEx函数 516

21.2 CRecordset对象 517

21.1.3 事务和CDatabase 对象 517

21.2.1 构造记录集 522

21.2.3 使用RFX读写数据 523

21.2.2 打开记录集 523

21.2.4 过滤记录 524

21.2.6 使用通配符进行搜索 526

21.2.5 对记录集返回的记录进行排序 526

21.2.7 在结果集中移动 527

21.3 MFC数据库类编程 528

21.2.9 删除记录 528

21.2.8 保存记录 528

21.3.1 UserMaintenance示例程序 529

21.3.2 参数化记录集与查询 538

21.4 小结 547

22.1.1 通用数据访问的基础知识 548

22.1 ADO概览 548

第22章 ADO 548

22.1.2 ADO结构 549

22.1.4 ADO类库 551

22.1.3 ADO的接口 551

22.2.1 导入 ADO类库 552

22.2 使用ADO进行编程 552

22.2.3 连接数据源 554

22.2.2 初始化和结束COM 554

22.2.5 执行返回数据的命令 556

22.2.4 创建命令 556

22.2.6 对数据进行筛选和排序 557

22.2.7 遍历记录集 559

22.2.8 更新数据 560

22.3.1 初始化连接 561

22.3 ADO示例程序 561

22.3.2 显示用户 562

22.3.3 更新用户信息 565

22.3.4 添加一些用户界面装饰 568

22.4 小结 569

23.1 CFile类概览 570

第23章 CFile类和文件输入/输出 570

23.1.2 打开文件 571

23.1.1 实例化CFile 对象 571

23.1.4 将数据写入文件 573

23.1.3 从文件中读取数据 573

23.1.5 定位文件中的数据 574

23.2 打开和显示二进制文件 575

23.3 使用文本文件 578

23.4 以逗号进行分隔的文件类 580

23.5 打开和显示CSV文件 584

23.6.1 CompressDemo示例程序 586

23.6 压缩文件 586

23.6.2 CCompressedFile类函数 587

23.6.3 剖析CompressDemo示例程序 589

23.7 小结 591

24.2 XML术语和语法 592

24.1 XML概述 592

第24章 在Visual C++中使用XML 592

24.3 XML DOM简介 595

24.4.1 创建VisualC++项目和对话框 596

24.4 上载和查看XML文档 596

24.4.2 合并XML支持 597

24.4.3 上载XML文档 598

24.4.4 遍历XML文档 599

24.4.5 使用户界面更友好 602

24.5 小结 604

第5部分 COM 605

25.1.1 n层系统 606

25.1 基于组件的软件 606

第25章 基于接口的程序设计 606

25.1.2 接口与实现 607

25.1.3 抽象类和接口 609

25.1.4 C++的VTBL 610

25.2 使用IUnknown 611

25.1.5 对象管理 611

25.2.1 生命周期管理 612

25.2.3 发现身份 614

25.2.2 GUID,CLSID和IID 614

25.2.4 使HRESULT值 616

25.2.5 接口不变性 618

25.2.6 接口继承 619

25.3 IDL简介 621

25.4 小结 624

26.1 COM的优势 625

第26章 创建和使用组件 625

26.2 对象和服务器 626

26.3 创建COM对象 627

26.4 注册表 629

26.4.1 DLL必须输出的函数 630

26.4.2 IClassFactory 631

26.4.3 使用RegSvr32 634

26.5 小结 639

27.2 封送处理 640

27.1 类型库概述 640

第27章 类型库 640

27.2.2 IDL,ODL和MkTypeLib 642

27.2.1 类型库封送处理 642

27.3 C++编译器扩展 645

27.3.1 EXE服务器和封送处理 648

27.3.2 自定义接口和代理-存根DLL 651

27.4 小结 652

第6部分 .NET编程 653

28.1 .NET概述 654

第28章 .NET简介 654

28.2 BCL和System名字空间 655

28.3.1 MSIL和JITter 656

28.3 生成执行代码 656

28.3.3 程序集清单数据 658

28.3.2 程序集 658

28.4 小结 659

29.1 开始使用VisualC++ 660

第29章 编写托管C++代码 660

29.2 作为智能域的属性 662

29.2.1 定义和使用属性 663

29.2.2 编译器真正在做什么 665

29.2.3 指定只读、只写和读/写特性 666

29.4 用委托作为回调函数 667

29.3 委托和事件句柄 667

29.2.4 属性的高级用法 667

29.5 小结 673

30.2 使用线程类创建辅助线程 674

30.1 线程概述 674

第30章 托管C++的多线程 674

30.3 向辅助线程传递数据 677

30.4.1 暂停和恢复线程的执行 681

30.4 线程的生命周期管理 681

30.4.2 退出线程 683

30.4.3 结合使用所有方法 686

30.5 线程的优先级 690

30.6 同步线程 694

30.6.1 用Monitor类来保护代码 695

30.6.2 用Mutex类来同步代码 698

30.7 小结 699

31.1 创建第一个Windows Forms程序 700

第31章 使用Windows Forms 700

31.2 向窗体中添加控件 703

31.3 在Windows Forms 应用程序中集成菜单 708

31.4 用托管C++编写图像浏览器 711

31.5 小结 717