《VisualC++范例大全》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:孙皓等编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2009
  • ISBN:9787111261407
  • 页数:722 页
图书介绍:本书讲述如何使用VC++进行程序设计。

第一篇 vc程序开发基础 1

第1章 vc与C++开发基础 1

1.1 C++面向对象特性 1

实例1:实现C++类的多重继承 1

实例2:使用虚函数实现运行时多态 3

实例3:使用操作符重载实现编译多态—复数的加法运算 6

实例4:使用函数模板实现不同数据类型的极值函数 7

1.2 C++常用的操作与算法 8

实例5:使用C++实现格式化数据的I/O 8

实例6:实现数字金额的中文大写转换 10

实例7:将十进制数转换为二进制输出 11

实例8:产生随机数 12

实例9:实现排序操作 13

1.3 创建基本的应用程序框架 16

实例10:使用Windows API创建程序窗口 16

实例11:使用AppWizard创建基于文档/视图结构MFC应用程序框架 18

实例12:使用AppWizard建立对话框应用程序框架 21

1.4 使用CString类进行字符串操作 23

实例13:查找、替换字符串 23

实例14:根据指定字符分割字符串 25

实例15:格式化字符串 26

实例16:CString字符串的类型转换 28

1.5 时间与日期操作 29

实例17:获取当前的日期、时间并格式化输出 30

实例18:计算某日为星期几 31

实例19:计算两个时间点的时间间隔 33

1.6 MFC集合类的使用 34

实例20:使用CStringArray类创建和使用字符串数组 34

实例21:使用CPtrList类创建和使用链表 36

第2章 消息映射与处理 40

2.1 键盘消息及处理 40

实例22:基本键盘操作—判断按键消息 40

实例23:在普通视图窗口中实现键盘字符的输入 42

实例24:创建和使用键盘插入符 43

实例25:使用程序模拟键盘输入 45

实例26:在对话框中实现键盘消息响应 46

实例27:向其他应用程序(记事本)中发送键盘消息 47

2.2 鼠标消息及处理 48

实例28:基本鼠标操作—判断鼠标消息 48

实例29:创建并设置鼠标光标 51

实例30:在对话框中定义光标的热区 52

实例31:创建和使用鼠标提示框 53

实例32:在视图窗口实现捕捉鼠标 54

实例33:限制鼠标的作用区域只在客户窗口 56

实例34:使用程序模拟鼠标动作 57

2.3 其他消息处理 58

实例35:创建和使用自定义消息 58

实例36:使用命令范围添加消息处理函数 59

实例37:使用定时器实时显示当前时间 61

实例38:使用定时器显示毫秒级的时间 62

第二篇 VC基本程序发要素 65

第3章 Windows基本控件的开发使用 65

3.1 按钮控件的使用 65

实例39:创建和使用下压按钮、单选框和复选框 65

实例40:实现位图按钮,设定控件文本的字体 68

实例41:实现超链接风格的按钮 70

实例42:实现动画按钮 74

3.2 编辑框控件的使用 76

实例43:使用单行、多行编辑框输入显示文本 76

实例44:只允许输入字母,并转换为大写的编辑框 77

实例45:在单行编辑框控件输入回车后,不响应默认控件处理消息 78

实例46:设置编辑框控件的背景、文本颜色 79

实例47:创建完全只读(没有输入焦点、不能选择)的编辑框 81

实例48:实现只能输入小数的编辑框控件 82

实例49:使用RichEdit编辑框格式化显示文本 84

3.3 静态控件的使用 87

实例50:设定静态文本框的背景色和文本颜色 87

实例51:使用Picture控件实现分隔线 88

实例52:使用静态文本控件显示图标和位图 88

实例53:在静态文本控件上进行绘图 89

实例54:创建显示数字钟的静态文本框 91

实例55:创建超链接风格的静态控件 94

3.4 使用列表框控件 96

实例56:添加删除列表框的数据 96

实例57:创建带有复选框的列表框和可拖放列表项的列表框 100

实例58:实现选中项缩进的列表框 101

实例59:创建带有智能水平滚动条的列表框 103

3.5 组合框控件的使用 105

实例60:添加和获取组合框的列表项 105

实例61:使用扩展组合框使组合框的选项带有图标 106

实例62:在组合框的下拉列表框中实现自动选择 108

实例63:创建颜色选择下拉组合框 109

3.6 滑块、调节钮、进度条和滚动条控件的使用 111

实例64:使用滑块控件和调节钮控件设置选择范围 111

实例65:使用滚动条和进度条进行范围设置 113

实例66:创建带有文本指示的自定义进度条 115

3.7 动态创建控件 117

实例67:动态创建和删除编辑控件 117

实例68:在视图中创建和使用控件 119

第4章 高级控件的开发使用 122

4.1 列表控件的使用 122

实例69:使用列表控件添加和选择数据项 122

实例70:动态设置列表控件的不同显示方式 125

实例71:实现列表控件的扩展风格—拖放、整栏选择和显示网格 126

4.2 树形控件的使用 127

实例72:使用树形控件显示数据 127

实例73:动态添加、删除树形控件的结点,获取树形控件的选中项 129

实例74:在树形控件中使用背景位图 130

实例75:创建可编辑结点的树形控件 133

实例76:使用树形控件和列表控件显示系统的资源列表 134

4.3 时间、日期控制控件的使用 137

实例77:在程序中使用月历控件 137

实例78:使用日期控件设置、获取日期时间信息 139

4.4 其他一些控件的使用 140

实例79:使用动画控件播放简单动画 140

实例80:使用IP地址控件显示和设置IP地址 142

实例81:使用标签控件创建标签页 143

实例82:使用热键控件为程序设置热键 145

4.5 ActiveX控件的使用与开发 147

实例83:在对话框窗口中使用Microsoft ActiveX控件FlexGrid 147

实例84:在视图窗口中动态创建ActiveX控件FlexGrid 151

实例85:使用MFC开发ActiveX控件OleEdit 154

实例86:通过例程测试ActiveX控件OleEdit 157

实例87:使用ActiveXControlTestContainer工具测试ActiveX 158

实例88:通过编程实现ActiveX控件的注册 159

实例89:使用ATL开发ActiveX控件MagicBox 161

实例90:通过例程测试ActiveX控件MagicBox 165

第5章 菜单、工具栏和状态栏的开发 167

5.1 菜单的设计与开发 167

实例91:基本下拉菜单的创建与消息响应 167

实例92:创建启用、禁用菜单项 168

实例93:创建单选标记菜单 169

实例94:动态添加、删除菜单项 170

实例95:创建带有图标的菜单 172

实例96:创建弹出式菜单 173

实例97:实现中英文双语菜单 174

实例98:为系统菜单添加菜单项 176

实例99:在对话框中添加菜单 178

实例100:使用快捷键和发送消息触发菜单命令 178

5.2 工具栏的设计与开发 179

实例101:基本工具栏按钮的创建与使用 179

实例102:保持工具栏按钮组中只有一个按钮被按下 181

实例103:在工具栏上同时显示位图和文本标签 182

实例104:为工具栏添加下拉按钮 183

实例105:在工具栏添加非按钮控件 185

实例106:实现在同一行上停靠两个工具栏 187

实例107:在对话框中添加工具栏 189

5.3 状态栏的设计与开发 190

实例108:在状态栏上实时显示当前时间 190

实例109:在状态栏上显示BMP位图 192

实例110:在状态栏上添加组合框控件 193

实例111:在状态栏上显示进度条 195

实例112:为对话框窗口创建状态栏 196

5.4 对话条和伸缩条 198

实例113:在单文档程序中创建对话条 198

实例114:实现对话条与窗口消息的信息交互 201

实例115:创建和使用伸缩条 202

第6章 对话框程序设计 204

6.1 基本对话框的创建与使用 204

实例116:创建模态对话框 204

实例117:创建非模态对话框 205

实例118:模态对话框与应用程序之间的数据交换 207

实例119:非模态对话框与应用程序之间的数据交换 209

6.2 通用对话框的创建与使用 212

实例120:使用MessageBox消息对话框 212

实例121:使用AfxMessageBox消息对话框 214

实例122:使用“字体”对话框更改文本的字体 215

实例123:使用“颜色”对话框选择颜色 216

实例124:使用文件对话框获取文件路径 217

实例125:使用多选文件对话框 218

实例126:重载打开文件对话框,添加删除按钮 219

实例127:使用查找替换对话框实现查找替换功能 221

6.3 属性表对话框与向导对话框 223

实例128:在程序中使用属性表对话框 224

实例129:激活属性表对话框中的“应用”按钮 226

实例130:去除属性表对话框中的“应用”按钮 228

实例131:在对话框中使用属性表 229

实例132:创建向导对话框 229

6.4 对话框程序界面设计 231

实例133:设置对话框的背景颜色 231

实例134:使用位图作为对话框背景 232

实例135:创建半透明对话框窗口 233

实例136:创建圆形对话框窗口 234

实例137:全屏幕显示对话框窗口 234

实例138:动态改变对话框窗口的大小 235

实例139:按下Esc键,对话框不关闭 237

实例140:禁用对话框右上角的关闭按钮 237

实例141:可在对话框的任意位置拖动对话框 238

实例142:为对话框程序制作启动画面 238

实例143:动态弹出、关闭对话框 240

实例144:在对话框上动态创建视图 242

第7章 文本输出与屏幕绘图 243

7.1 MFC设备描述表(DC) 243

实例145:在视图中使用CDC进行绘图操作 243

实例146:在视图中使用CPaintDC进行窗口重绘操作 244

实例147:在视图中使用CWindowDC在整个窗口进行绘图 245

实例148:在对话框窗口中进行绘图操作 245

7.2 字体与文本显示 246

实例149:创建字体进行文本输出 246

实例150:制作简单的立体字 248

实例151:制作空心立体字 248

实例152:显示倾斜的文字 249

实例153:制作滚动的字幕 251

实例154:获取系统中已安装的所有字体 252

7.3 画笔、画刷及区域对象的使用 253

实例155:使用不同的画笔绘制图形 253

实例156:使用不同类型的画刷填充矩形 254

实例157:使用CRgn对象得到某一特定区域 256

实例158:提取并显示鼠标指针所在图像点的颜色 258

实例159:绘制坐标刻度和自定义线条 259

实例160:绘制带有箭头的线条 260

7.4 位图对象与调色板的使用 262

实例161:在视图窗口中显示DDB位图 262

实例162:实现位图的各种缩放处理 263

实例163:实现局部放大位图 266

实例164:实现位图的镜像显示 268

实例165:通过区域剪裁显示椭圆位图 270

实例166:显示透明位图 271

实例167:复制位图到剪切板 272

实例168:抓取屏幕图像并在视图窗口中显示 273

实例169:创建和使用调色板 275

7.5 坐标系统与映射方式 277

实例170:使用不同的映射方式进行绘图 277

实例171:创建自定义坐标系进行绘图 278

实例172:制作绚丽的圆环 279

第8章 文档/视图框架体系 282

8.1 基本的文档、视图操作 282

实例173:在视图中使用鼠标进行绘图操作(涂鸦) 282

实例174:在文档中记录绘图数据,并实现窗口重绘 284

实例175:通过序列化保存文档 286

实例176:当文档被修改时在标题上给出提醒 288

实例177:使用对话框与文档视图进行数据交换 289

实例178:在多文档程序中为新建的文档设置显示字体 290

8.2 各种视图类型的使用 291

实例179:在滚动窗口中实现绘图 292

实例180:实现动态滚动窗口 293

实例181:在窗体视图(CFormView)中使用控件 295

实例182:在列表视图(CListView)中使用列表控件 296

8.3 文档/视图框架的程序界面设计 297

实例183:改变视图窗口的背景色 297

实例184:改变MDI框架窗口背景色 298

实例185:动态设置主框架窗口的图标 300

实例186:动态设置子框架窗口的图标 300

实例187:使窗口总在最前显示 301

实例188:MDI启动时不创建新文档,且限定框架窗口的大小和位置 301

实例189:限定框架窗口的大小和位置 303

实例190:限定MDI子框架窗口的最大、最小尺寸 303

实例191:实现客户窗口的全屏显示 304

实例192:为程序制作启动界面 306

实例193:以动画的方式启动、关闭窗口并添加位图背景 308

实例194:改变主窗口上的标题 309

实例195:为程序创建系统托盘图标 310

实例196:为程序创建类似迅雷的辅助隐藏窗口 312

8.4 窗口分割与多视图的实现 313

实例197:动态分割窗口,不同窗口对应同一视图 313

实例198:静态分割窗口,实现窗口的任意切分 314

实例199:固定分割窗口的分隔线 315

实例200:动态改变分割窗口的大小 317

实例201:定制分隔条的外观特性 318

实例202:多视图与文档的交互 318

第9章 打印、帮助、调试与发布 323

9.1 打印操作 323

实例203:实现“所见即所得”的打印 323

实例204:设置打印图形的位置 325

实例205:定制打印固定大小的单页文档 325

实例206:定制打印多页文档 327

实例207:定制打印页的页眉和页脚 330

9.2 帮助的使用 331

实例208:为对话框控件添加ToolTip提示框 331

实例209:使用AppWizard自动创建WinHelp帮助 332

实例210:制作WinHelp帮助文件 333

实例211:向程序中手工添加WinHelp帮助文件 335

9.3 调试技术与异常处理 336

实例212:调试环境配置—Debug模式和Release模式 336

实例213:设置位置断点跟踪程序 338

实例214:设置数据断点跟踪程序 339

实例215:使用断言宏检测程序的运行状态 340

实例216:使用跟踪宏在程序运行过程中输出调试信息 340

实例217:使用TRY-THROW-CATCH结构捕获处理异常 341

实例218:使用CFileException类捕获文件异常 342

9.4 程序的发布 344

实例219:为应用程序创建快捷方式 344

实例220:删除快捷方式 347

实例221:实现对软件的简单加密 349

实例222:开发简单的注册机 350

第三篇 vc高级开发技术 351

第10章 文件操作与注册表编程 351

10.1 基本的文件操作 351

实例223:创建文本文件并进行读写数据操作 351

实例224:在文件的指定位置存放和读取数据 353

实例225:复制、删除、移动文件 354

实例226:实现遍历目录下的每个文件 355

实例227:获取文件的属性 357

实例228:获取指定文件的图标 358

10.2 驱动器与文件目录操作 359

实例229:获取系统所有驱动器以及每个驱动器的序列号 359

实例230:获取驱动器的文件系统类型 361

实例231:获取磁盘的空间信息 361

实例232:判别磁盘驱动器的类型 362

实例233:获取当前目录、系统目录和Windows目录 364

实例234:创建和删除目录 365

实例235:删除非空目录 366

实例236:实现目录的复制操作 368

实例237:删除指定目录下某种类型的文件 369

实例238:获取目录的创建时间 372

实例239:获取应用程序的完整路径 372

10.3 常用文件操作 373

实例240:使用CStdioFile实现在txt文件中逐行读写数据 373

实例241:使用内存映射文件来共享数据 375

实例242:创建临时文件 376

实例243:使用INI文件保存程序的信息 376

实例244:使用剪贴板实现数据的复制和粘贴 378

实例245:实现拖放文件到视图窗口 379

实例246:实现拖放文件到对话框中的编辑控件 380

实例247:分割大文件为定长小文件 381

实例248:合并分割的小文件 383

10.4 注册表编程 385

实例249:使程序开机自动运行 385

实例250:使用默认浏览器打开某个网页 386

实例251:枚举注册表的键值名 387

实例252:设置和修改IE默认主页 388

实例253:设置软件的使用期限 391

实例254:限制软件的使用次数 394

实例255:使窗口开启时保持上次关闭时的大小 396

实例256:使用注册表模拟软件加密 397

第11章 进程与线程 400

11.1 基本线程的创建与使用 400

实例257:使用Win32API创建、销毁线程—控制进度条 400

实例258:创建MFC用户界面线程 402

实例259:创建MFC工作线程,进行耗时计算 404

实例260:设置线程的优先级 405

11.2 线程间的通信 406

实例261:使用全局结构进行线程间的通信 406

实例262:使用自定义消息进行线程间的通信 408

实例263:使用事件对象进行线程间的通信 410

11.3 线程的同步处理 412

实例264:使用CEvent对象实现线程同步 412

实例265:使用临界区对象(CriticalSection)实现线程同步 415

实例266:使用互斥对象(Mutex)实现线程同步 416

实例267:使用互斥对象(Mutex)实现不同进程间线程同步 417

实例268:使用信号量(Semaphore)实现线程同步 418

实例269:使用多线程进行文件搜索 419

11.4 进程的基本操作 422

实例270:获取当前系统的所有进程 422

实例271:实现应用程序在系统中只能运行一个实例 423

实例272:获取所有打开窗口程序的句柄、类名及标题 424

实例273:创建和终止进程 426

实例274:使用3种方法启动其他应用程序 427

11.5 进程间的通信 428

实例275:使用剪贴板实现程序间的数据交换 428

实例276:通过内存映射实现进程间的数据交换 430

实例277:通过消息机制实现进程间的通信 431

第12章 DLL开发与系统编程 433

12.1 基本Win32 DLL的创建与调用 433

实例278:创建导出浮点数四则运算函数的Win32DLL 433

实例279:使用显式方式调用DLL实现浮点数的四则运算 435

实例280:使用隐式方式调用DLL实现浮点数的四则运算 436

实例281:创建Win32DLL,导出一个全局变量 437

实例282:调用DLL,获取其导出的全局变量值 438

实例283:创建Win32DLL,导出一个计算长方体表面积和体积的类 439

实例284:调用DLL,使用其导出类计算长方体的表面积和体积 440

实例285:使用Depends工具查看程序调用的DLL文件 441

12.2 MFC常规DLL和扩展DLL的开发 441

实例286:创建MFC常规DLL,通过导出函数显示颜色信息对话框 442

实例287:调用MFC常规DLL,显示颜色信息对话框 443

实例288:创建MFC扩展DLL,实现圆形按钮类 444

实例289:调用MFC扩展DLL,创建圆形按钮 446

12.3 钩子技术的应用 446

实例290:创建记录键盘动作的全局钩子DLL 447

实例291:调用键盘钩子DLL,实现监视系统的键盘操作 448

实例292:创建记录当前鼠标指针所在窗口标题信息的鼠标钩子DLL 449

实例293:调用鼠标钩子DLL,显示鼠标指针所在窗口的标题 452

12.4 系统编程 453

实例294:获取当前操作系统的版本信息 453

实例295:获取系统CPU信息 455

实例296:获取系统内存的相关信息 456

实例297:获取当前系统所有安装的硬件设备 457

实例298:调用系统关机对话框 459

实例299:利用编码实现关闭和重启计算机 459

实例300:实现休眠计算机,并创建快捷键 461

实例301:显示并设置系统的显示属性 462

实例302:隐藏/显示系统的任务条 464

实例303:改变系统的桌面壁纸 466

第四篇 VC专项应用开发技术 469

第13章 网络编程 469

13.1 使用WinSock开发基本的网络程序 469

实例304:使用CAsyncSocket进行无连接(UDP)通信 469

实例305:使用CSocket进行有连接(TCP)通信 473

实例306:C/S结构信息转发器的实现—服务器 475

实例307:C/S结构信息转发器的实现—客户端 478

13.2 典型的网络应用实例 480

实例308:多人在线的网络聊天室—服务器 480

实例309:多人在线的网络聊天室—客户端 482

实例310:C/S结构点对点信息交互系统—服务器 485

实例311:C/S结构点对点信息交互系统—客户端 488

13.3 Internet相关程序开发 491

实例312:使用Winlnet通过HTTP协议读取网上文件 491

实例313:在对话框中,使用WebBrowser控件实现web浏览器 493

实例314:使用CHtmlView类,实现类似IE的网页浏览器 494

实例315:在对话框中显示HTML网页 496

实例316:获取IE运行实例的标题,并修改其标题 497

实例317:向IE的工具条上添加自定义的按钮图标 498

13.4 其他相关网络设置、网络程序的开发 500

实例350:在查询语句中使用字符串函数 577

实例351:在查询语句中使用数学函数 578

实例352:在查询语句中使用时间、日期函数 579

实例353:在查询时为表中的空字段添加默认信息 581

15.4 在查询语句中使用聚合函数进行统计分析 582

实例354:在查询中使用COUNT函数统计记录的个数 582

实例355:在查询中使用SUM函数实现求和运算 583

实例356:在查询中使用AVG函数实现求均值运算 583

实例357:在查询中使用MAX/MIN函数实现求极值 584

实例358:在查询中重复记录的统计 584

15.5 使用分组查询 585

实例359:在查询中进行分类汇总统计 585

实例360:在查询中根据多列信息进行分类汇总统计 585

实例361:在查询中对分组统计结果进行再筛选 586

实例362:在查询中实现对分组统计结果进行统计处理 586

15.6 多表连接查询 587

实例363:使用内连接进行多表查询 587

实例364:使用自连接简化查询过程 588

实例365:使用左外连接进行多表查询 589

实例366:使用右外连接进行多表查询 590

实例367:连接表后进行统计分析 591

15.7 使用子查询进行数据检索 592

实例368:在比较运算符中使用子查询 592

实例369:在查询中使用修改的比较运算符引入子查询 593

实例370:在查询语句中使用[NOT]IN引入子查询 594

实例371:在查询语句中使用EXISTS引入子查询 594

15.8 数据操纵与事务处理 595

实例372:使用INSERT向数据库表中添加记录 595

实例373:使用SELECT&INTO语句复制表中的数据 596

实例374:使用UPDATE语句修改记录 597

实例375:使用DELETE语句删除记录 597

实例376:创建和使用存储过程 598

实例377:在ADO中调用、执行SQLServer中的存储过程 599

实例378:在SQL中使用事务控制 602

实例379:在ADO中使用事务处理 604

第16章 数字图像处理基础 606

16.1 数字图像的显示 606

实例380:创建DIB操作的类—CDib 606

实例381:使用CDib类实现显示与保存BMP文件 615

实例382:使用IPicure显示多种格式的图像 620

16.2 使用DIB实现图像的特效显示 624

实例383:图像的扫描特效显示 624

实例384:图像的移动特效显示 627

实例385:图像的马赛克特效显示 630

实例386:图像的百叶窗特效显示 632

实例387:图像的栅格条交错特效显示 634

实例388:图像的伸缩特效显示 636

16.3 综合实例—雷达工程数据的可视化与处理 638

16.3.l 工程实例总体介绍 639

16.3.2 窗口分割与标尺的实现 639

16.3.3 从数据文件读取雷达数据 645

16.3.4 将雷达数据显示为BMP位图 648

16.3 5 开发要点:BMP文件的结构及显示 652

第17章 多媒体开发 654

17.1 动画开发 654

实例389:实现“静态”的位图动画 654

实例390:实现“动态”的位图动画 656

实例391:绘制三维图形 658

实例392:通过动态调整观察点位置实现三维动画 663

实例393:使用纹理显示图形 666

17.2 音频处理 668

实例394:用MessageBeep播放WAV文件 668

实例395:使用PlaySound播放WAV文件 669

实例396:使用低级波形音频函数播放WAV文件 671

实例397:创建基于MCI的WAV音频处理类—CMyMCIWave 676

实例398:使用CMyMCIWave类创建波形文件播放器 682

实例399:创建基于MCI的CD音频处理类—CMyMCICD 685

实例400:使用CMyMCICD类创建CD播放器 688

实例401:获取和设置系统音量 691

17.3 视频处理 695

实例402:创建基于MCI的数字视频处理类—CMyMCIVideo 695

实例403:使用CMyMCIVideo类创建数字视频播放器 699

实例404:使用MediaPlay ActiveX控件创建媒体播放器 701

实例405:使用VFW实现视频捕捉与保存 703

17.4 综合实例—基于音、视频传输的远程诊断系统 708

17.4.1 系统项目介绍 709

17.4.2 系统程序的工作流程 710

17.4.3 系统的核心类 714