精通MFC程序设计

当前位置:首页 > 计算机网络 > 程序设计 > 精通MFC程序设计

出版社:人民邮电出版社
出版日期:2006-7
ISBN:9787115149138
作者:姚领田
页数:715页

作者简介

全书由浅入深、循序渐进地介绍了Visual C++开发环境下MFC库的具体使用方法。全书分9篇共30章,内容涵盖了Windows-VC-MFC、MFC框架及消息处理机制、MFC通用控件和对话框编程、文档-视结构、MFC数据库编程、MFC网络编程、注册表编程、进程线程和DLL、异常与调试以及.NET MFC应用等,其中的大部分内容都配有较为丰富的实现代码。  本书的最大特色是内容丰富翔实、讲解细腻具体,对涉及MFC实现理论的部分均进行了较为深入的剖析,并且对于书中的大部分内容都结合工程实践给出了相应的实现代码,具有很强的针对性,力求让读者通过亲自动手做而掌握使用MFC开发工程的方法,学习尽可能多的知识。同时,对于开发中可能会遇到的问题也都给出了相应的提示或说明。  本书主要定位于初、中级读者,同时也可用作高校相关专业以及培训班的参考教材(要求读者具备C++的基本语法知识)。

书籍目录

第1章 理解MFC程序设计的概念 11.1 认识MFC 11.1.1 MFC的产生与发展 11.1.2 Win32的基本概念 21.1.3 MFC与Win32的关系 31.2 Win32程序设计概述 31.3 MFC程序设计概述 41.3.1 MFC特性 41.3.2 MFC程序设计思想 51.3.3 MFC类库层次 71.3.4 MFC的全局函数与宏 71.3.5 MFC数据类型 91.4 小结 9第2章 Visual C++集成开发环境 102.1 开发环境 102.2 IDE菜单介绍 112.3 资源与资源编辑器 132.3.1 资源编辑器 132.3.2 对话编辑器 142.3.3 串编辑器 152.3.4 加速键编辑器 162.3.5 版本信息编辑器 162.3.6 图形编辑器 172.4 环境变量与编译模式 172.4.1 环境变量 172.4.2 编译模式 182.5 小结 18第3章 C++特性 193.1 封装 193.1.1 封装的概念 193.1.2 封装的实例 203.2 继承 213.2.1 继承的概念 213.2.2 继承的实例 223.3 多态和虚函数 253.3.1 多态、虚函数概念 263.3.2 多态实例分析 263.4 RTTI——运行时类型信息 293.4.1 RTTI的基本概念 293.4.2 RTTI的实现实例 313.5 小结 33第4章 MFC应用结构 344.1 MFC类库 344.1.1 CObject类 354.1.2 窗口、对话框、控件类 354.1.3 设备上下文、图形设备接口类 394.1.4 简单数据类型类 394.1.5 数组、链表、映射类 424.1.6 文件、数据库类 434.1.7 Internet和网络类 454.1.8 调试和异常类 464.1.9 MFC应用结构类 464.1.10 CRuntimeClass结构 474.1.11 其他类 494.2 一个简单的MFC应用程序 494.2.1 SDI或MDI应用的生成 494.2.2 基于对话框应用的生成 524.3 MFC工程的成员类及全局对象 524.4 工程中的文件 534.4.1 文件一览 534.4.2 源文件结构 544.4.3 关于文件的补充说明 584.5 MFC应用开发 594.6 小结 60第5章 MFC程序的生命期 615.1 MFC程序的启动过程 615.1.1 工程的生成 615.1.2 全局对象的产生 625.1.3 应用入口——WinMain函数 625.1.4 AfxWinInit——初始化MFC环境 645.1.5 InitApplication——内部管理 645.1.6 InitInstance——应用的初始化 655.2 MFC程序的挂起状态 755.2.1 Run——程序挂起 755.2.2 空闲处理 785.3 MFC程序的终止过程 805.4 小结 81第6章 MFC消息处理 826.1 消息分类 826.1.1 消息结构 826.1.2 队列消息和非队列消息 836.1.3 系统消息和自定义消息 836.1.4 窗口消息 846.1.5 命令消息 846.1.6 控件通知 846.2 消息的传送 856.2.1 消息的寄送 856.2.2 消息的发送 866.3 消息处理 866.3.1 消息的接收 866.3.2 窗口过程 876.3.3 消息的处理 906.3.4 消息反射 996.3.5 消息的默认处理 1036.4 归纳整理 1046.5 重定向消息 1066.5.1 子类化 1066.5.2 重载OnCmdMsg 1086.5.3 其他重定向技术简介 1096.6 自定义消息 1106.7 小结 111第7章 通用控件 1137.1 Windows通用控件介绍 1137.1.1 Windows通用控件 1147.1.2 窗口类CWnd 1157.1.3 控件的创建 1187.1.4 控件的消息 1197.2 按钮控件和列表框控件 1207.2.1 按钮控件分类 1207.2.2 CButton类 1217.2.3 列表框及其相关的类 1237.2.4 按钮、列表框控件应用实例 1267.3 编辑框、组合框和滚动控件 1317.3.1 编辑框类CEdit类 1327.3.2 IP地址控件CIPAddressCtrl类 1347.3.3 组合框类CComboBox/CComboBoxEx 1367.3.4 微调按钮控件类CSpinButtonCtrl 1427.3.5 滚动条类CScrollBar 1457.3.6 滑动块类CSliderCtrl 1477.3.7 应用实例 1507.4 列表视图和树形视图 1547.4.1 列表视图 1547.4.2 树形视图 1607.4.3 编程实例 1657.5 进度条、动画控件和日历控件 1697.5.1 进度条 1707.5.2 动画控件 1717.5.3 日历控件 1737.6 通用控件综合运用实例 1767.6.1 实例介绍 1767.6.2 开发过程 1777.7 小结 185第8章 对话框 1878.1 对话框及MFC相关类 1878.1.1 对话框与CDialog类 1878.1.2 工程的创建 1888.2 模态对话框 1888.2.1 添加对话框及其类 1898.2.2 创建模态对话框 1908.2.3 模态对话框消息循环 1958.2.4 模态的终结 1988.2.5 编程实例 2008.3 非模态对话框 2028.3.1 添加对话框及其类 2028.3.2 创建非模态对话框 2038.3.3 模态对话框与非模态对话框区别 2048.4 对话框数据交换和验证 2058.4.1 CDataExchange类简介 2058.4.2 数据交换和验证 2058.5 通用对话框 2088.5.1 颜色选择通用对话框 2098.5.2 字体选择通用对话框 2128.5.3 定制打开文件通用对话框 2148.6 小结 219第9章 属性表与向导 2209.1 属性表相关类 2209.2 CPropertySheet类 2209.2.1 类简介 2219.2.2 类CPropertySheet成员一览 2219.3 CPropertyPage类 2229.3.1 类简介 2229.3.2 重要成员函数介绍 2229.4 属性表创建 2259.4.1 创建模态属性表 2259.4.2 创建非模态属性表 2259.5 应用按钮的处理 2269.5.1 应用按钮处理方法一——属性表处理 2269.5.2 应用按钮处理方法二——属性页处理 2279.6 编程实例 2299.6.1 工程的创建 2299.6.2 属性表类编程 2309.6.3 属性页类编程 2319.6.4 视图类编程 2329.6.5 属性表扩展编程 2359.7 向导 2389.7.1 向导函数介绍 2389.7.2 编程实例 2399.8 小结 242第10章 菜单、键盘和鼠标 24310.1 菜单编程 24310.1.1 菜单基本知识 24310.1.2 下拉式菜单编程 24510.1.3 通过代码操纵菜单 24710.1.4 弹出式菜单编程 25110.2 键盘处理 25310.2.1 键盘基础 25310.2.2 键盘响应 25410.3 鼠标编程 25510.3.1 鼠标消息 25510.3.2 鼠标响应 25610.3.3 鼠标光标 25710.3.4 鼠标键盘编程实例 25810.4 小结 261第11章 工具栏和状态栏 26211.1 Windows控制窗口概述 26211.2 MFC工具栏类及其实现 26311.2.1 MFC工具栏类CToolBar 26311.2.2 工具栏的创建 26611.2.3 工具栏的其他操作 26911.2.4 工具提示Tooltip 27011.2.5 工具栏编程实例 27211.3 MFC状态栏类及其实现 27511.3.1 MFC状态栏类 27511.3.2 状态栏的创建 27611.3.3 状态栏的创建实例 27811.4 小结 280第12章 控制条 28112.1 通用控制条 28112.1.1 处理控制条的位置 28112.1.2 控制条的消息分发处理 28512.1.3 对话条 28812.1.4 伸缩条 28912.1.5 通用控制条实例编程 29012.2 定制控制条 29412.2.1 定制控制条介绍 29412.2.2 控制条定制实例 29512.3 小结 306第13章 MFC GDI与绘图 30713.1 GDI和DC相关类 30713.2 设备上下文 30713.2.1 设备上下文类型 30813.2.2 设备上下文MFC类 30913.2.3 设备上下文操作 31213.3 GDI对象 31313.3.1 GDI对象创建过程 31313.3.2 GDI选择的生命期 31413.3.3 GDI对象的清除 31413.4 映射模式 31613.5 简单GDI对象编程 31813.6 位图 32213.6.1 位图概念 32213.6.2 位图格式 32213.6.3 位图操作 32413.7 调色板 32713.7.1 调色板概念 32813.7.2 逻辑调色板与系统调色板 32813.7.3 调色板编程方法 32913.8 CDib类与位图 33013.8.1 CDib类声明 33113.8.2 CDib类实现 33213.8.3 位图的预览 33813.8.4 位图的浏览 34413.9 小结 350第14章 MFC文件操作 35114.1 MFC文件相关类 35114.2 CFile类 35114.2.1 类简介 35114.2.2 构造函数及其成员函数分析 35214.2.3 常见的文件操作函数 35314.2.4 编程实例 35514.3 CStdioFile类 36014.3.1 类简介 36014.3.2 构造函数及其成员函数分析 36014.3.3 编程实例 36114.4 CFileFind类 36514.4.1 类简介 36514.4.2 构造函数及其成员函数分析 36514.4.3 编程实例 36814.5 CMemFile、CSharedFile类 37214.5.1 CMemFile类简介 37214.5.2 CSharedFile类简介 37314.6 MFC Shell文件操作 37314.6.1 Shell文件操作函数介绍 37314.6.2 编程实例 37414.7 小结 378第15章 深入Doc与View 38015.1 MFC文档/视结构 38015.1.1 文档/视结构简介 38015.1.2 MFC文档/视类 38115.1.3 创建工程 38115.2 文档/视重要函数 38115.2.1 文档函数 38215.2.2 视图函数 38415.3 对象的创建 38615.3.1 模板对象 38615.3.2 文档对象 38715.3.3 框架对象 39015.3.4 视图对象 39115.3.5 各对象间的关系 39415.4 文档读写 39515.4.1 持久性和串行化概念 39515.4.2 文件和归档——CArchive 39615.4.3 CArchive对象的使用 39615.4.4 使类可串行化 39715.4.5 串行化实现 39815.4.6 编程实现 40015.5 小结 404第16章 多视 40516.1 多视基础——窗口分割 40516.2 CSplitterWnd类 40616.2.1 类简介 40616.2.2 Create——创建分割窗口 40616.2.3 CreateStatic——创建静态分割窗口 40816.2.4 CreateView——创建窗格 40816.2.5 SetRowInfo和SetColumnInfo——设置窗格信息 40916.2.6 OnDrawSplitter——绘制分割窗口特征 41016.2.7 OnInvertTracker——绘制分割条 41116.3 视图切换 41316.4 编程实例 41316.4.1 工程的创建 41316.4.2 派生分割窗口类 41316.4.3 视类编程 41516.4.4 主框架类编程 41716.5 小结 420第17章 MFC打印技术 42117.1 MFC打印相关类 42117.2 CPrintInfo结构 42117.3 默认打印机制 42317.3.1 “打印”命令消息的映射 42417.3.2 “打印”命令消息的处理 42417.4 “打印”相关虚成员 42817.4.1 OnPreparePrinting——准备打印 42817.4.2 OnBeginPrinting——开始打印 42917.4.3 OnPrepareDC——准备设备上下文 42917.4.4 OnPrint——执行打印 43017.4.5 OnEndPrinting——结束打印 43017.5 打印预览 43017.6 编程实例 43117.6.1 直接打印 43117.6.2 “所见即所得”打印 43217.7 小结 433第18章 上下文帮助 43418.1 WinHelp帮助 43418.1.1 WinHelp帮助文件的制作 43418.1.2 WinHelp帮助文件的制作实例 43618.1.3 MFC与WinHelp帮助 43918.1.4 WinHelp帮助应用实例 44218.2 HtmlHelp帮助 44418.3 小结 446第19章 SQL查询与数据库 44719.1 SQL语言与数据库概述 44719.1.1 SQL语言概述 44719.1.2 数据库概述 44719.2 SQL查询 44819.2.1 Access中的SQL查询 44819.2.2 Select语句简介 44919.3 数据库开发技术 45219.3.1 ODBC API/MFC ODBC技术 45219.3.2 DAO技术 45219.3.3 OLE DB/ADO技术 45219.4 MFC ODBC操作数据库 45319.4.1 MFC ODBC的封装类 45319.4.2 使用Crecordset操作记录集 45619.4.3 设置ODBC数据源 46219.4.4 编程步骤 46319.5 ADO操作数据库 46319.5.1 ADO技术特点 46419.5.2 ADO对象模型 46419.5.3 ADO接口简介 46819.5.4 使用Recordset对象 46919.5.5 编程步骤 47219.5.6 几种常见的数据源连接方式 47419.6 小结 474第20章 ODBC数据库编程——MP3管理系统 47520.1 实现目标和数据库设计 47520.1.1 实现目标 47520.1.2 数据库设计 47620.2 工程创建 47720.2.1 菜单和工具栏制作 47720.2.2 添加位图和图标资源 47720.2.3 添加对话框资源 47820.2.4 向工程添加新类 48020.3 数据库操作准备 48120.4 常见数据库操作 48220.4.1 添加记录 48220.4.2 编辑数据库记录 48620.4.3 删除数据库记录 48820.5 数据库查询 49120.5.1 设置SQL语句 49120.5.2 递交查询 49320.5.3 显示查询结果 49420.5.4 参数化记录集 49620.6 事务处理 49820.7 其他内容 49920.8 小结 500第21章 ADO数据库编程 50121.1 实现目标与数据库设计 50121.1.1 实现目标 50121.1.2 数据库设计 50221.2 工程创建 50321.2.1 菜单和工具栏制作 50321.2.2 添加位图和图标资源 50421.2.3 添加对话框资源 50421.2.4 向工程添加新类 50721.3 数据库操作准备 50721.3.1 导入ADO动态连接库 50821.3.2 初始化OLE/COM库环境 50821.3.3 连接数据库 50821.4 ADO中的数据类型 51021.5 常见数据库操作 51221.5.1 打开记录集 51221.5.2 添加数据库记录 51321.5.3 编辑数据库记录 51721.5.4 删除数据库记录 52021.5.5 数据库记录查询 52421.5.6 关闭记录集和连接 52721.6 事务处理 52821.7 小结 528第22章 MFC Socket编程 52922.1 WinSock简介 52922.1.1 Windows Sockets基础 52922.1.2 Windows Sockets通信 53022.1.3 Windows Sockets编程特点 53022.2 MFC类CAsyncSocket和CSocket 53122.2.1 类简介 53122.2.2 主要类成员函数介绍 53322.3 利用CSocket进行无连接的通信 53522.3.1 通信过程 53522.3.2 实例编程 53622.4 利用CSocket进行有连接的通信 53922.4.1 通信过程 53922.4.2 实例编程 53922.5 CSocket阻塞和非阻塞模式 54122.5.1 阻塞模式 54222.5.2 非阻塞模式 54322.6 WinSock运用实例 54422.6.1 客户端的实现 54422.6.2 服务器端的实现 54822.6.3 程序运行结果 55122.7 小结 552第23章 MFC与Internet编程 55323.1 WinInet编程 55323.1.1 WinInet概述 55323.1.2 WinInet开发要点 55523.1.3 WinInet的开发应用 55623.1.4 WinInet编程实例 55923.2 ISAPI服务器扩展 56323.2.1 ISAPI概述 56323.2.2 MFC提供的ISAPI类 56423.2.3 使用MFC开发ISA程序 56423.2.4 MFC开发ISAPI Extensions程序实例 56623.3 小结 570第24章 注册表编程 57124.1 注册表的基本概念 57124.1.1 注册表文件 57124.1.2 注册表编辑器 57224.1.3 注册表的结构 57224.1.4 注册表的应用 57224.2 注册表API函数 57424.3 注册表API函数编程实例 57824.4 CWinApp实现的注册表函数 58424.4.1 函数介绍 58424.4.2 应用开发实例 58624.5 注册表类CRegKey 59024.6 创建自己的注册表类CMyRegistry 59224.6.1 CMyRegistry类简介 59224.6.2 CMyRegistry类的实现 59324.6.3 CMyRegistry类的应用 59824.7 小结 601第25章 进程和线程 60225.1 进程和线程的基本概念 60225.2 进程处理简介 60225.2.1 进程的创建 60325.2.2 进程的管理和终止 60425.3 Win32的线程 60525.3.1 线程的创建 60525.3.2 线程的优先级别 60625.3.3 线程的终止 60725.3.4 线程的创建、终止实例 60725.3.5 线程间的通信 61325.4 线程同步 61425.4.1 同步对象 61525.4.2 等待函数 61825.5 MFC的线程处理 62025.5.1 类CWinThread 62025.5.2 MFC线程的创建 62125.5.3 函数AfxBeginThread 62225.5.4 线程的结束 62425.5.5 线程的消息循环 62425.6 MFC多线程实例 62525.6.1 实例概述 62525.6.2 完成实例 62525.7 小结 628第26章 MFC动态链接库 62926.1 DLL基本理论 62926.1.1 DLL基本概念 62926.1.2 DLL的分类 63026.1.3 DLL的工作原理 63026.2 DLL的编程思想 63126.2.1 一个简单的DLL 63126.2.2 导出函数 63426.2.3 导入函数 63526.3 访问动态链接库 63526.3.1 隐式链接 63626.3.2 显式链接 63626.4 其他DLL技术 63826.4.1 DllMain函数 63826.4.2 DLL文件的查找 64026.4.3 DLL程序调试 64026.5 常规MFC DLL 64026.5.1 静态链接到MFC的常规DLL 64026.5.2 动态链接到MFC的常规DLL 64326.5.3 DLL的链接使用 64626.6 扩展MFC DLL 64826.6.1 生成DLL 64826.6.2 链接DLL 65026.7 小结 651第27章 调试技术 65227.1 调试基础 65227.1.1 调试的概念 65427.1.2 调试环境的配置 65527.2 断点的设置和取消 65527.2.1 Location页——位置 65627.2.2 Data页——数据 65827.2.3 Message页——消息 66027.2.4 断点的取消 66027.3 控制程序执行 66127.4 查看工具 66127.4.1 变量窗口 66227.4.2 查看窗口 66327.4.3 寄存器窗口 66327.4.4 内存窗口 66327.4.5 调用堆栈 66427.4.6 反汇编窗口 66427.4.7 其他 66527.5 高级调试技术 66627.5.1 断言宏 66627.5.2 跟踪宏——TRACE 66827.5.3 倾印——Dump函数 66827.6 内存泄漏 66927.7 小结 670第28章 异常处理 67128.1 MFC异常类 67128.2 异常的使用 67228.2.1 异常的使用时机 67328.2.2 异常的捕获和删除 67328.2.3 异常中对象的销毁 67528.3 查看异常内容 67728.4 MFC异常处理 67828.5 异常的捕获的原则 68028.6 小结 680第29章 Visual C++ 2005 MFC编程环境 68129.1 Visual C++ 2005的特点 68129.1.1 Visual C++ 2005的新特点 68129.1.2 MFC库 68229.1.3 Visual C++ 2005属性窗口 68229.1.4 应用向导 68329.1.5 调试工具 68429.2 Visual C++ 2005开发MFC应用程序 68529.2.1 创建Windows窗体 68629.2.2 实现功能开发 68629.2.3 编译运行 68929.3 小结 690第30章 C++/CLI CLR编程 69130.1 通用语言运行环境(CLR) 69130.1.1 基本概念 69130.1.2 MFC与CLR 69230.2 C++/CLI概述 69230.2.1 C++/CLI基本概念 69230.2.2 C++/CLI主要内容 69330.3 C++/CLI CLR应用程序开发基础 69530.3.1 .NET框架应用程序的特点 69530.3.2 CLR项目向导 69530.4 C++/CLI开发Win表单 69730.4.1 Win表单开发的一般方法 69730.4.2 Win表单控件的使用 69930.4.3 Win表单的文档程序设计 70330.5 C++/CLI开发Web Service 70630.6 小结 710附录A 常见网络资源 711附录B 术语表 713

图书封面


 精通MFC程序设计下载 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     绝对的好书,我觉得比台湾佬和外国佬写的那些“经典”还要好很多,学习VC的同志一定要去买一本,不看你一定后悔。
  •     很不错得一本MFC的入门书籍现在正在看前几章,堪比一些经典的外国教材。对于我这种只学过C没学过C++的人来说,还可以算是面向对象程序设计的入门。讲的透彻又不拖拖拉拉。强烈建议入门的同学看下这个

精彩短评 (总计25条)

  •     感觉很不错的一本书,学MFC不可错过的好书!
  •     建议到网上下载孙鑫的视频教程或者购买《VC++深入详解》
  •     看是看了,但是感觉说得不够细
  •     目前还没有怎么看多少但觉得还是蛮详细简单的满意
  •     没有想象中的好,内容过多,还是不够深入
  •     从应用的角度帮助读者快速入手,但是在原理上就有些苍白,《深入浅出》明显好一点,现在MFC框架也有些过时了,但是在某些领域还是有市场的,要追求新技术的人就没必要学了。
  •     比较中等水平,C++没学好的看不懂的,最好有人指导着看,边看边实践
  •     这本书不是太好,我的建议是换一本!
  •     讲得比较具体,挺详细的!~
  •     通过一段时间的阅读和实践,我对Windows编程有了更多的理解.
  •     感觉一般,内容不是很全!介绍的内容都大概的大致的带过而已
  •     相当可以的一本书。讲的详细。值得一看。
  •     好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好
  •     呵呵,似乎还不错,不过现在还没有好好看完………………
  •     对于初学者来说还是很不错的
  •     非常不错的一本书.....
  •     依稀记得当年翻过 不晓得现在还有没有人用MFC啦= = 学这行就是要轻别离 高速推进的产业总有跟不上的人要被落下……
  •     国内的书知识讲解不够透彻,建议还是买老外的书。。。。。水平不是很柴的那种,但是也算不上很好就是了
  •     寒假认真看看希望能学到点有用的东西
  •     已经学完了,觉得这书还8错,一学长看了还嚷嚷着要买呢!
  •     看过几章,然后送给我班MFC达人了,对Windows实在无爱。
  •     很实用,很不错的书!
  •     很好,没说的,对于提高个人的编程能力很有帮助
  •     好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好
  •     还可以``我现在已经开始看了````就是送的时间太长了
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024