《Visual C++ 2017从入门到精通》PDF电子书免费下载

作者:  朱晨冰

出版社: 清华大学出版社

出版年: 2019年12月

ISBN: 9787302542865

~~滚到底部有网盘下载链接~~

内容简介

目录

目 录
第1章 Visual C 2017概述··· 1
1.1 Visual C 2017简介·· 1
1.2 安装Visual C 2017及其帮助·· 2
1.3 认识Visual C 2017集成开发环境·· 2
1.3.1 起始页·· 2
1.3.2 主界面·· 3
1.3.3 标题栏·· 4
1.3.4 菜单栏·· 4
1.3.5 工具栏·· 4
1.3.6 类视图·· 6
1.3.7 解决方案资源管理器·· 6
1.3.8 输出窗口·· 6
1.3.9 错误列表·· 6
1.3.10 设置源码编辑窗口的颜色·· 7
1.3.11 显示行号·· 7
第2章 Windows编程基础··· 8
2.1 开发Windows程序的3种方式·· 8
2.1.1 SDK方式·· 8
2.1.2 MFC方式·· 11
2.1.3 托管方式·· 17
2.2 字符集·· 21
2.2.1 计算机上的3种字符集·· 21
2.2.2 Unicode编码的实现·· 25
2.2.3 C运行时库对Unicode的支持·· 29
2.2.4 C 标准库对Unicode的支持·· 31
2.2.5 Windows API对Unicode的支持·· 31
2.2.6 Visual C 2017开发环境对Unicode的支持·· 31
2.2.7 字符集相关范例·· 33
2.3 SDK编程基础·· 36
2.3.1 消息的定义·· 36
2.3.2 预定义消息·· 38
2.3.3 自定义消息·· 41
2.3.4 消息和事件·· 42
2.3.5 消息和窗口·· 42
2.3.6 工程目录结构·· 51
2.3.7 调试初步·· 52
2.3.8 Win32控件编程·· 53
2.3.9 Win32对话框编程·· 91
2.4 MFC编程基础·· 105
2.4.1 MFC类库概述·· 105
2.4.2 MFC应用程序类型·· 108
2.4.3 添加菜单·· 110
2.4.4 窗口客户区·· 112
2.5 键盘·· 115
2.5.1 键盘概述·· 115
2.5.2 键盘消息·· 116
2.6 鼠标·· 125
2.6.1 鼠标概述·· 125
2.6.2 鼠标消息·· 125
2.7 字符串·· 132
2.7.1 几个字符串类型·· 132
2.7.2 Win32 API中的字符串·· 134
2.7.3 MFC中的字符串·· 135
2.8 控制台编程·· 141
2.9 内存管理·· 144
2.10 文件操作·· 146
2.10.1 Win32 API操作文件·· 146
2.10.2 MFC类操作文件·· 149
2.11 MFC的异常处理·· 156
2.12 调试输出·· 158
2.12.1 调试程序常用快捷键·· 158
2.12.2 利用Win32 API进行调试输出·· 158
2.12.3 在MFC程序调试输出·· 159
2.12.4 可视化查看变量的值·· 159
第3章 MFC对话框程序设计··· 160
3.1 对话框程序设计概述·· 160
3.2 建立一个简单的对话框程序·· 161
3.3 设置对话框的属性·· 162
3.3.1 打开对话框资源的属性视图·· 163
3.3.2 设置对话框的边框·· 165
3.3.3 设置对话框的标题·· 165
3.3.4 设置对话框运行后所处的坐标·· 165
3.3.5 设置对话框的大小·· 165
3.3.6 设置对话框的字体·· 165
3.3.7 设置对话框的化和小化按钮·· 166
3.4 在对话框上使用按钮控件·· 166
3.4.1 显示工具箱·· 166
3.4.2 一次在对话框上放置一个按钮·· 166
3.4.3 一次在对话框上放置多个按钮·· 167
3.4.4 选中按钮控件·· 167
3.4.5 移动对话框上的按钮控件·· 168
3.4.6 对齐对话框上的按钮控件·· 168
3.4.7 调整按钮控件的大小·· 168
3.4.8 删除对话框上的按钮控件·· 168
3.4.9 为按钮添加变量·· 168
3.4.10 为按钮控件添加事件处理程序·· 170
3.5 显示消息对话框·· 171
3.5.1 MessageBox的常见应用·· 171
3.5.2 AfxMessageBox的常见应用·· 173
3.6 对话框的窗口消息·· 175
3.6.1 为对话框添加消息处理函数·· 176
3.6.2 为对话框添加自定义消息·· 178
3.7 模态对话框和非模态对话框·· 180
3.8 通用对话框·· 184
3.8.1 文件对话框的使用·· 184
3.8.2 字体对话框的使用·· 188
3.8.3 颜色对话框的使用·· 192
3.8.4 浏览文件夹对话框的使用·· 193
3.8.5 查找/替换对话框的使用·· 195
3.8.6 打印对话框的使用·· 200
3.9 对话框的高级话题·· 203
3.9.1 在对话框非标题栏区域实现拖动·· 203
3.9.2 在对话框上显示状态栏·· 204
3.9.3 在对话框状态栏上显示菜单提示·· 206
3.9.4 对话框上显示带下拉菜单的工具栏·· 207
3.9.5 创建一个向导式对话框·· 212
3.9.6 为对话框添加BMP图片作为背景·· 215
3.9.7 动画的方式显示对话框·· 216
3.9.8 替换对话框的小化和关闭按钮·· 218
3.9.9 为对话框添加PNG图片作为背景·· 221
3.9.10 为PNG背景的对话框添加控件·· 223
3.9.11 使对话框大小可调整·· 225
3.9.12 限制对话框化时对话框的大小·· 225
3.9.13 显示或隐藏对话框窗口标题栏·· 226
3.9.14 带启动文字界面的对话框程序·· 226
3.9.15 让带图像的对话框渐进渐出·· 228
3.9.16 对话框上实现3D文字·· 231
3.9.17 对话框程序向另一个对话框发送消息·· 231
3.9.18 枚举当前所有打开的窗口·· 232
3.9.19 在动态链接库dll中调用对话框·· 233
3.9.20 改变对话框的默认背景色·· 235
第4章 MFC控件程序设计··· 237
4.1 控件概述·· 237
4.2 按钮控件·· 237
4.2.1 设置按钮的标题·· 238
4.2.2 制作图片按钮·· 239
4.2.3 实现一个三角形按钮·· 240
4.2.4 实现类似Visual C 属性表中的钉子按钮·· 240
4.2.5 实现具有不同状态的图片按钮·· 242
4.2.6 为按钮动态加载的4幅状态图·· 247
4.2.7 反映3种不同状态的图片按钮·· 250
4.2.8 实现一个不自动弹起的按钮·· 256
4.2.9 3种选中radio button的方法·· 259
4.2.10 利用CXPButton实现图片按钮·· 262
4.2.11 CButtonST类的基本使用·· 262
4.2.12 CButtonST类的高级使用·· 265
4.2.13 实现CButtonST类的透明效果·· 267
4.2.14 CButtonST类的阴影效果·· 270
4.2.15 同一程序内模拟按钮事件·· 272
4.2.16 不同的程序间发送消息给对方按钮·· 274
4.2.17 实现按钮凹下和弹起效果·· 276
4.2.18 在非客户区上实现按钮·· 277
4.2.19 鼠标移过按钮时发出声音·· 279
4.2.20 实现一个类似网址形式的链接按钮·· 280
4.2.21 通过自绘实现XP样式的按钮·· 281
4.2.22 鼠标停留背景改变的按钮·· 282
4.2.23 实现圆形按钮·· 282
4.2.24 更完美的XP样式按钮·· 282
4.2.25 一个圆形的图片按钮·· 283
4.2.26 又一个XP风格按钮的实现·· 285
4.2.27 实现头像选择按钮·· 285
4.3 编辑控件·· 286
4.3.1 编辑控件的常用属性·· 288
4.3.2 设置和获取编辑框内容·· 289
4.3.3 设置和获取密码框·· 290
4.3.4 设置CEdit控件的字体颜色·· 291
4.3.5 自定义编辑控件的上下文菜单·· 292
4.3.6 代码方式实现内容全选·· 294
4.3.7 用位图更换编辑框的背景·· 294
4.3.8 实现一个简单的记事本·· 296
4.3.9 实现可设断点的多文档程序·· 297
4.3.10 日期格式化输入的编辑框·· 299
4.3.11 实现联想输入的编辑框·· 300
4.3.12 在编辑框中加载位图·· 301
4.3.13 在Rich编辑框中实现末尾和当前位置插入文本·· 302
4.3.14 在编辑框末尾追加文本·· 304
4.3.15 让编辑框支持自动换行·· 305
4.3.16 让滚动条随着设置的内容滚动到后一行·· 305
4.3.17 让编辑框一直滚屏·· 306
4.4 列表框控件·· 307
4.4.1 向列表框中插入和获取数据·· 309
4.4.2 向列表框指定位置插入数据·· 311
4.4.3 实现一个支持复选框的列表框·· 312
4.4.4 让列表框支持多选·· 314
4.4.5 让列表框出现水平滚动条·· 314
4.4.6 为列表框替换背景图片·· 315
4.4.7 列表框自动选中后一行·· 318
4.5 列表控件·· 319
4.5.1 添加和获取、删除数据项·· 321
4.5.2 图标方式显示列表控件内的项目·· 325
4.5.3 为列表控件增加背景图片·· 325
4.5.4 可设置单元格颜色的CListCtrl类·· 326
4.5.5 在列表框中实现列表项目的上下移动·· 327
4.5.6 对列表控件列头的字体、颜色、背景进行更改·· 330
4.5.7 让列表控件的主项可以编辑·· 336
4.5.8 使列表控件支持子项可编辑·· 337
4.5.9 使列表控件呈现网格·· 338
4.5.10 让列表视图的表头无法改变大小·· 338
4.5.11 让列表控件可以修改行、列和单元格颜色·· 341
4.5.12 在dll中设置外部列表控件·· 344
4.6 标签控件·· 345
4.6.1 标签控件的基本使用·· 346
4.6.2 带图标的标签控件·· 349
4.7 静态文本控件·· 350
4.7.1 设置和获取静态文本控件的内容·· 351
4.7.2 让静态文本控件显示不同风格的字体·· 352
4.7.3 实现边框为3D样式的静态框·· 356
4.7.4 用空格键操作超级链接静态控件访问网址·· 357
4.7.5 用静态控件实现电子式时钟·· 358
4.7.6 一个功能强大的静态控件类·· 360
4.7.7 静态控件实现电子8段管仿真程序·· 361
4.7.8 用静态框实现项目和颜色列表功能·· 362
4.7.9 设置静态文本控件的文本颜色·· 364
4.7.10 让静态文本控件响应单击·· 365
4.8 组合框·· 366
4.8.1 组合框的基本使用·· 368
4.8.2 组合框实现联想输入·· 370
4.8.3 实现一个颜色组合框·· 371
4.8.4 支持自动完成的扁平组合框·· 372
4.8.5 自定义组合框背景·· 372
4.8.6 带图标的组合框·· 373
4.9 进度条·· 374
4.9.1 进度条的基本使用·· 374
4.9.2 实现一个位图进度条·· 376
4.9.3 实现一个带文字指示的进度条·· 377
4.9.4 在状态栏中实现进度条显示·· 378
4.10 图像列表控件·· 379
4.11 树形控件·· 384
4.11.1 树形控件的基本使用·· 386
4.11.2 判断某节点的复选框是否打勾·· 387
4.11.3 某节点的复选框打勾的时候,其儿子节点也打勾·· 388
4.11.4 隐藏某些节点的复选框·· 389
4.11.5 修改某节点字体和颜色·· 390
4.11.6 通过代码选中某个节点·· 391
4.11.7 判断某节点是否展开·· 392
4.11.8 判断某节点是否处于选中状态·· 393
4.11.9 判断是否单击了复选框·· 393
4.11.10 使节点标题可以编辑·· 394
4.11.11 使节点可以编辑,并且限制标题长度·· 395
4.11.12 通过代码的方式使树形控件具有Edit Label风格·· 396
4.11.13 编辑节点Label的时候支持回车键和Esc键·· 397
4.11.14 通过代码取消选中某个节点·· 398
4.11.15 让树形控件出现ToolTips· 400
4.11.16 某节点的checkbox打勾的时候,其所有的子孙节点也打勾·· 400
4.11.17 加载图标文件方式为树形控件加入图标·· 402
4.11.18 把磁盘某目录下的内容添加到树形控件中·· 403
4.11.19 通过代码展开某个含有子节点的父节点·· 404
4.11.20 实现类似Delphi的属性列表功能·· 405
4.11.21 对树形控件中的节点进行拖动·· 406
4.11.22 设置树形控件字体颜色·· 407
4.11.23 通过加载位图文件让树形控件的节点带有图标·· 407
4.11.24 添加数据库里的内容到树形控件节点·· 408
4.11.25 实现类似QQ游戏大厅导航的树形控件·· 412
4.11.26 通过树形控件节点来显示不同的子对话框·· 415
4.11.27 树形控件和文档类程序的联合作战·· 417
4.11.28 一个简单的Windows资源管理器的界面·· 419
4.11.29 递归添加磁盘上的任一目录·· 422
4.11.30 支持编辑框的方式插入节点·· 423
4.11.31 节点检查框的隐藏和显示·· 427
4.11.32 实现一个三态树·· 429
4.11.33 把位图作为树形控件的背景·· 431
4.12 滑块控件·· 432
4.12.1 滑块控件的基本使用·· 433
4.12.2 让位图作为滑块控件的背景·· 434
4.13 调节控件·· 437
4.13.1 调节控件的基本使用·· 437
4.13.2 用调节控件调节小数·· 439
4.14 滚动条控件·· 440
4.14.1 滚动条控件基本使用·· 441
4.14.2 区分多个滚动条·· 443
4.15 IP Address控件·· 445
4.15.1 IP Address控件的基本使用·· 445
4.15.2 获取和设置IP地址的另一种用法·· 447
4.15.3 在IP控件中显示本机地址·· 448
4.16 日期时间拾取控件·· 449
4.16.1 日期时间拾取控件的基本使用·· 450
4.16.2 设置日期时间拾取控件的选择范围·· 452
4.16.3 设置日期时间拾取控件的显示格式·· 453
4.17 月历控件·· 454
4.17.1 月历控件的基本使用·· 455
4.17.2 月历控件的其他使用·· 456
4.18 动画控件·· 458
4.19 热键控件·· 460
4.20 Custom控件·· 462
4.20.1 让Custom控件关联已有控件·· 462
4.20.2 把Custom 控件设置为一个自定义类·· 463
4.20.3 实现一个能自绘的Custom控件·· 464
4.21 Picture控件·· 466
4.21.1 Picture控件静态显示图片·· 466
4.21.2 Picture控件动态显示图片·· 466
4.22 Syslink控件·· 468
4.23 Command Button控件·· 470
4.24 Network Address控件·· 471
4.25 Split Button控件·· 473
4.26 MFC新控件·· 474
4.26.1 MFC Button控件·· 474
4.26.2 MFC ColorButton控件·· 477
4.26.3 MFC EditBrowse 控件·· 478
4.26.4 MFC VSListBox控件·· 479
4.26.5 MFC FontComboBox控件·· 480
4.26.6 MFC MaskedEdit控件·· 481
4.26.7 MFC MenuButton控件·· 483
4.26.8 MFC PropertyGrid控件·· 485
4.26.9 MFC ShellList控件和MFC ShellTree控件·· 490
4.26.10 MFC Link控件·· 492
4.27 动态创建控件·· 492
4.27.1 在对话框上动态创建CMFCListCtrl控件和CStatic控件·· 492
4.27.2 在视图上动态创建控件·· 494
第5章 菜单、工具栏和状态栏的开发使用··· 498
5.1 菜单的设计与开发·· 498
5.1.1 添加菜单项并添加消息·· 499
5.1.2 为菜单添加快捷键·· 500
5.1.3 设置菜单的状态来标记任务栏是否隐藏·· 501
5.1.4 绘制漂亮的快捷菜单·· 502
5.1.5 向记事本程序发送菜单信息·· 504
5.1.6 动态生成菜单·· 506
5.1.7 实现动态菜单的状态栏提示·· 508
5.1.8 代码方式为对话框加载菜单·· 509
5.1.9 自定义类CMenuEx的简单使用·· 510
5.1.10 通过类CMenuEx给菜单增加背景色和左边位图·· 510
5.1.11 实现中英文菜单的动态切换·· 512
5.1.12 修改并增加系统菜单项·· 514
5.2 工具栏的设计与开发·· 516
5.2.1 显示或隐藏工具栏·· 517
5.2.2 设置工具栏标题·· 517
5.2.3 显示或隐藏工具栏上所有按钮·· 518
5.2.4 在视图类中判断工具栏是否处于浮动状态·· 518
5.2.5 资源法创建工具栏·· 519
5.2.6 非资源法创建工具栏·· 520
5.2.7 使工具栏具有任意停靠和漂浮功能·· 521
5.2.8 通过菜单出现工具栏提示·· 521
5.2.9 通过字符串表出现工具栏提示·· 522
5.2.10 工具栏上放置组合框·· 523
5.2.11 让工具栏不出现提示·· 524
5.2.12 让工具栏按钮出现提示·· 524
5.2.13 使工具栏按钮出现下拉箭头·· 525
5.2.14 使工具栏按钮失效和生效·· 526
5.2.15 使工具栏按钮保持下压状态·· 527
5.2.16 使工具栏在任意一边停靠·· 527
5.2.17 通过工具栏指针动态为工具栏按钮保存一段文本·· 528
5.2.18 设置工具栏按钮的大小·· 529
5.2.19 在工具栏按钮下方显示文本·· 529
5.2.20 动态修改工具栏按钮的显示文本·· 530
5.2.21 在工具栏上显示字体组合框·· 531
5.2.22 工具栏上出现对话框·· 533
5.3 状态栏的设计与开发·· 534
5.3.1 在单文档程序的状态栏上显示自定义字符串·· 534
5.3.2 在状态栏已有窗格上动态显示字符串·· 535
5.3.3 在状态栏新的窗格上动态显示自定义字符串·· 536
5.3.4 在状态栏上显示图片·· 537
5.3.5 在状态栏上显示按钮·· 538
5.3.6 显示或隐藏状态栏·· 539
5.3.7 通过自定义字符串资源在状态栏中新增窗格·· 540
5.3.8 通过使用预定义ID在状态栏中新增窗格·· 541
第6章 图形和图像··· 542
6.1 Windows图形编程的几个重要概念·· 542
6.1.1 图形输出设备·· 542
6.1.2 GDI的概念·· 542
6.1.3 GDI对象的概念·· 543
6.1.4 设备描述表·· 543
6.2 Win32图形编程·· 544
6.2.1 点的坐标POINT· 544
6.2.2 矩形尺寸SIZE· 544
6.2.3 矩形坐标RECT· 545
6.2.4 更新区域、WM_PAINT和WM_ERASEBKGND消息·· 546
6.2.5 设备描述表的获取和释放·· 550
6.2.6 设备描述表的属性·· 554
6.3 设备坐标系·· 557
6.4 逻辑坐标和映射模式·· 559
6.4.1 映射模式·· 560
6.4.2 原点的坐标·· 562
6.4.3 视口范围和窗口范围·· 564
6.5 Win32中的GDI对象·· 571
6.5.1 画笔·· 572
6.5.2 画刷·· 575
6.5.3 字体·· 577
6.5.4 GDI位图·· 581
6.5.5 区域·· 590
6.5.6 调色板·· 596
6.6 路径·· 598
6.7 裁剪·· 599
6.8 更新区域·· 601
6.9 双缓冲绘图·· 604
6.10 颜色·· 607
6.10.1 颜色的表示·· 607
6.10.2 窗口背景色·· 609
6.10.3 文本背景色·· 610
6.10.4 文本前景色·· 611
6.11 背景模式·· 611
6.12 绘图模式·· 612
6.13 MFC图形编程·· 614
6.13.1 点的坐标CPoint 614
6.13.2 矩形尺寸CSize· 615
6.13.3 矩形坐标CRect 616
6.13.4 设备描述表的获取和释放·· 618
6.13.5 设备描述表的属性·· 621
6.13.6 在对话框上画点和线·· 622
6.13.7 在单文档视图上画填充图形·· 625
6.13.8 OnDraw和OnPaint的关系·· 627
6.14 MFC中的GDI对象·· 628
6.14.1 画笔·· 629
6.14.2 画刷·· 630
6.14.3 GDI位图·· 630
6.14.4 字体·· 631
6.14.5 区域·· 632
6.14.6 调色板·· 633
第7章 动态链接库··· 635
7.1 动态链接库的定义·· 635
7.2 使用动态链接库的好处·· 636
7.3 动态链接库的分类·· 636
7.4 Win32 DLL的开发·· 636
7.4.1 在DLL中导出全局函数·· 636
7.4.2 C 语言使用DLL· 639
7.4.3 DllMain函数·· 644
7.4.4 在DLL中导出变量·· 646
7.4.5 在DLL中导出类·· 650
7.4.6 其他语言调用DLL· 653
7.5 MFC下DLL的开发·· 659
第8章 多线程编程··· 664
8.1 多线程编程的基本概念·· 664
8.1.1 为何要用多线程·· 664
8.1.2 操作系统和多线程·· 664
8.1.3 进程和线程·· 664
8.1.4 线程调度·· 666
8.1.5 线程函数·· 668
8.1.6 线程对象和句柄·· 668
8.1.7 线程对象的安全属性·· 669
8.1.8 线程标识·· 669
8.1.9 多线程编程的3种库·· 669
8.2 利用Win32 API函数进行多线程开发·· 670
8.2.1 线程的创建·· 670
8.2.2 线程的结束·· 674
8.2.3 线程和MFC控件交互·· 679
8.2.4 线程的暂停和恢复·· 684
8.2.5 消息线程和窗口线程·· 687
8.2.6 线程同步·· 689
8.3 CRT库中的多线程函数·· 701
8.4 MFC多线程开发·· 707
8.4.1 线程的创建·· 708
8.4.2 线程同步·· 711
第9章 数据库编程··· 725
9.1 数据库的基本概念·· 726
9.1.1 数据库·· 726
9.1.2 DBMS· 726
9.1.3 SQL· 726
9.2 ODBC的概念·· 726
9.3 通过MFC ODBC来开发数据库应用程序·· 727
9.3.1 建立数据库·· 727
9.3.2 建立ODBC数据源·· 728
9.3.3 在MFC中通过ODBC进行数据库开发·· 729
第10章 网络Socket编程··· 736
10.1 TCP/IP· 736
10.1.1 基本概念·· 736
10.1.2 TCP/IP的分层结构·· 736
10.1.3 TCP· 738
10.1.4 UDP· 739
10.1.5 IP· 739
10.1.6 IP地址·· 740
10.1.7 MAC地址·· 742
10.1.8 ARP协议·· 743
10.1.9 RARP· 744
10.1.10 DNS· 745
10.1.11 端口·· 745
10.2 Socket基础·· 746
10.2.1 基本概念·· 746
10.2.2 网络字节序·· 746
10.2.3 I/O模式和I/O模型·· 748
10.3 Winsock API套接字编程·· 748
10.3.1 Winsock API编程的基本步骤·· 748
10.3.2 常用的Winsock API函数·· 749
10.3.3 阻塞套接字的使用·· 755
10.3.4 非阻塞套接字的使用·· 758
10.4 MFC套接字编程·· 761
10.4.1 类CAsyncSocket 761
10.4.2 类CSocket 765
显示部分信息

下载价格:免费
立即下载
登入/注册
知识就是力量
没有账号? 忘记密码?