《Visual C++开发经验技巧宝典》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:明日科技编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2007
  • ISBN:7115166595
  • 页数:748 页
图书介绍:本书介绍了Visual C++开发经验技巧1008个,覆盖了程序开发中的各种实际需求。全书分为21章,分别是语言基础、数据类型、开发环境、MFC实用技术、控件技术、用户界面设计、通用对话框、图形图像与多媒体、Windows相关技术、内核对象、注册表和Ini文件、文件与内存管理、数据库技术、打印技术、硬件程序开发、局域网编程、套接字技术、Internet编程、ATL Com编程、常用算法和联机帮助。本书介绍了Visual C++开发经验技巧1008个,覆盖了程序开发中的各种实际需求。全书分为21章,分别是语言基础、数据类型、开发环境、MFC实用技术、控件技术、用户界面设计、通用对话框、图形图像与多媒体、Windows相关技术、内核对象、注册表和Ini文件、文件与内存管理、数据库技术、打印技术、硬件程序开发、局域网编程、套接字技术、Internet编程、ATL Com编程、常用算法和联机帮助。

第一章 语言基础 1

1.1 基础语句 2

0001 注释的使用方法及注意事项 2

0002 使用汇编语言 2

0003 如何使用内联函数 2

0004 如何使用#define自定义宏 3

0005 使用goto语句进行无条件跳转 3

0006 while循环转为for循环 3

0007 do while循环的分析与使用 4

0008 利用条件运算符简化代码 4

0009 使用exit函数退出进程 5

0010 函数exit的注意事项 5

0011 调试无限循环 5

0012 控制台输入/输出 5

0013 delete与delete[]的差别 6

0014 符号#、##、#@的用法 6

0015 将某个地址转换为指针 6

0016 常用内存分配及释放函数 6

0017 生成小于100的随机数 7

1.2 类型与变量 7

0018 静态变量的定义及应用 7

0019 使用全局变量的注意事项 7

0020 如何使用全局对象 7

0021 变量作用范围 8

0022 创建自己的变量类型 8

0023 如何声明同样类型的多个变量 8

0024 extern关键字的使用 9

0025 const关键字的应用范围 9

0026 去除const属性的转换 9

0027 使用enum定义类型 10

0028 定义只有零个元素的数组 11

0029 利用零进行初始化的对象 11

0030 初始化数组的简单方法 11

0031 结构体的字节对齐 11

1.3 模板与函数 12

0032 成员函数的模板不可以是虚函数 12

0033 利用递归函数计算阶乘 12

0034 函数模板的应用 13

0035 使用指针数组 13

0036 函数指针数组的应用 13

0037 函数重载的注意事项 14

0038 使用typename关键字 14

1.4 引用 14

0039 使函数返回多个值 14

0040 如何使用引用 15

0041 如何应用值传递参数 15

0042 赋值与初始化的区别 16

0043 如何初始化左值 16

1.5 名称空间 16

0044 为什么使用命名空间 16

0045 如何定义及访问命名空间 16

0046 利用命名空间解决命名冲突 17

0047 名称空间简单应用 18

0048 使用∷运算符调用全局函数 18

0049 ∷使用命名空间的注意事项 18

1.6 继承 19

0050 两个类互为成员的声明 19

0051 为什么要避免直接存取数据成员 19

0052 避免使用memset初始化对象 19

0053 C++类中成员初始化的顺序 19

0054 基类的析构函数应该是虚方法 20

0055 访问限定符分析 21

0056 访问其他类的私有成员函数 21

0057 如何定义友员类 22

1.7 多态 23

0058 纯虚函数的使用 23

0059 覆盖基类的成员函数 23

0060 如何应用多重继承 24

0061 如何利用虚函数实现动态绑定 25

0062 如何利用抽象类进行数据封装 25

0063 数据类型与类对象大小的区别 26

0064 实现类的强制转换 26

1.8 高级函数 27

0065 如何重载操作符 27

0066 如何定义重载函数 28

0067 默认构造函数 28

0068 复制构造函数 28

0069 this指针分析 29

0070 如何用非静态的类成员函数作为线程函数 29

0071 如何在常量函数中修改数据成员 30

1.9 STL模板库 30

0072 为什么在程序中广泛使用STL 30

0073 如何在STL中使用容器 30

0074 STL算法的优点 31

0075 如何设计和使用STL迭代器 31

0076 使用STL需要包含哪些头文件 32

0077 STL简单应用 32

1.10 C++.NET语法 33

0078 在C++.NET中如何判断空指针 33

0079 C++与C++.NET中纯虚函数的区别 33

0080 C++.NET中数据类型转换的方法 33

0081 在C++.NET中如何定义具有输出参数的函数 33

0082 C++.NET中如何实现方法的默认参数 33

0083 在C++.NET中如何获取系统信息 34

第2章 数据类型 35

2.1 常用类型 36

0084 CString的多种初始化方式 36

0085 Windows字符串指针类型分析 36

0086 BSTR类型与CString类型的相互转换 36

0087 _bstr_与其他字符串类型的相互转换 37

0088 _VARIANT类型的初始化 37

0089 _variant_t与字符串类型的转换 38

0090 ColeVariant与其他数据类型的转换 38

0091 格式化类型 39

2.2 类型转换 39

0092 CString和char*之间的转换 39

0093 char与char*类型应用 39

0094 COLORREF类型转换RGB分量 40

0095 DWORD与WORD之间的转换 40

0096 WORD与BYTE之间的转换 40

0097 字符串数值转换 40

2.3 字符串截取与转换 41

0098 获取字符串中的中文 41

0099 英文字符串首字母大写 41

0100 指定符号分割字符串 42

0101 在文本中删除指定的中文或中文句子 43

0102 替换指定的字符串 44

0103 向字符串中添加子字符串 44

0104 截取字符串中的数字 45

0105 将选定字符转换成大写 46

0106 截取指定位置的字符串 47

2.4 字符串的比较与判断 48

0107 判断字符中是否有中文 48

0108 判断字符串是否可以转换成整数 48

0109 如何判断字符串是否含有数字 49

0110 判断指定位置字符的大小写 49

0111 判断字符串中是否有指定的字符 50

0112 两个字符串进行比较 50

0113 在进行字符串比较时忽略大小写 50

0114 获取字符串中的英文子字符串 51

2.5 字符串技巧 52

0115 字符串加密 52

0116 字符串连接 52

0117 如何在字符串中使用双引号 53

0118 如何在字符串中添加多个空格 53

0119 字符反转 53

0120 去除字符首尾空格 53

0121 去除字符串中所有的空格 53

2.6 字符串应用 54

0122 将选定内容复制到剪贴板 54

0123 在ListBox中查找的字符串 54

0124 编辑框的行数,以及回车换行的数量 55

0125 字符串数组搜索 55

0126 设置编码方式 56

2.7 字符串统计 56

0127 如何统计中文个数 56

0128 获取字符串中数字位置 56

0129 获取字符在字符串中最后出现的位置 57

0130 获取大写字符的位置 58

0131 统计字符个数 59

0132 获取字符在字符串中出现的位置 60

0133 获取字符在字符串中出现的次数 61

0134 获取指定字符起始位置 62

0135 获取字符串中英文字母个数 63

第3章 开发环境 65

3.1 扩展开发环境 66

0136 利用VBScript脚本扩展Visual C++开发环境 66

0137 在Visual C++集成开发环境中定制自己的工具栏 70

0138 向Visual C++开发环境中添加插件 71

3.2 编译程序 72

0139 头文件的预编译 72

0140 Debug版本与Release版本的区别 72

0141 如何编译Unicode版本的应用程序 72

0142 Visual C++中加快链接速度 72

0143 强制编译器生成内联代码 72

0144 如何禁止函数内联 72

0145 如何让控制台应用程序支持MFC类库 73

3.3 编程技巧 73

0146 在代码编辑器中使用代码录制功能 73

0147 快速调整控件的Tab键顺序 73

0148 从位图中获取工具条资源 73

0149 从其他文件中抓取资源 74

0150 生成自定义的关键字 74

0151 利用Visual C++修改可执行文件的图标 74

0152 如何使用源代码浏览工具 74

0153 在一个工作区中管理多个工程 75

0154 如何将控件分组 75

0155 注册自己的对话框模板 75

0156 如何彻底地从工程中删除一个类 75

0157 在类向导中处理没有发现的窗口消息 76

0158 如何导入lib文件 76

0159 完全取词功能不可用 76

0160 判断代码中的括号是否匹配 76

0161 如何对齐零乱的代码 77

0162 显示函数参数 77

0163 在类向导中处理没有发现的窗口消息 77

0164 如何汉化可执行文件 77

0165 查看Exe或Dll文件中的资源 78

0166 T()在代码中的含义 78

0167 运行时库和静态库与DLL的比较 78

0168 快速删除项目下Debug文件夹中临时文件 78

0169 Visual C++文件扩展名介绍 78

0170 Visual C++快捷键 79

3.4 程序调试 82

0171 在发行版本中调试程序 82

0172 在Visual C++中如何进行远程调试 82

0173 利用简单断点进行程序调试 82

0174 利用数据断点进行程序调试 83

0175 利用条件断点进行程序调试 84

0176 利用消息断点进行程序调试 85

0177 检测内存泄漏 86

0178 利用Watch调试窗口查看对象信息 87

0179 利用Call Stack窗口查看函数调用信息 87

0180 利用Memory窗口查看内存信息 88

0181 利用Variables窗口查看变量信息 88

0182 利用Registers窗口查看CPU寄存器信息 89

0183 利用Disassembly窗口查看汇编信息 90

0184 如何确定GetLastError返回的错误代码的含义 91

0185 在Watch窗口中获得当前线程的最后错误代码 91

0186 调试Dll 92

0187 如何调试指针数组 92

第4章 MFC实用技术 93

4.1 MFC常用宏应用 94

0188 获取32位整数的低字节和高字节数据 94

0189 将两个16位数组合为一个32位数 94

4.2 MFC常用函数 94

0190 MFC常用调试函数 94

0191 判断某个句柄是否关联一个窗口 95

0192 MFC应用程序信息和管理函数 95

0193 Internet URL解析全局函数 95

4.3 MFC框架技术 96

0194 在类的定义时使其具有运行时类型识别的功能 96

0195 运行时判断某个对象是否是指定的类型 96

0196 禁止文档/视图应用程序运行时显示视图选择窗口 96

0197 多个窗口消息共享同一个消息处理函数 98

0198 遍历对话框中的子控件 99

0199 在程序中捕捉CException及其派生类的异常 100

0200 扩展消息映射宏 100

0201 THIS_FILE的含义 100

0202 为静态文本控件命名 100

0203 在基于对话框的应用程序中添加文档\视图的支持 101

0204 解析浮动状态下工具栏的父窗口 101

4.4 MFC编程技术 101

0205 根据位图资源ID获取位图大小 101

0206 将某个控件对象关联到对话框中的控件资源 102

0207 将一个全局函数指针关联到对话框类的某个方法 102

0208 修改应用程序的图标 102

0209 使用安全数组 103

0210 将子窗口的客户区域映射到父窗口中 103

0211 判断两个时间段的差距 103

0212 重新设置工程名称 103

0213 为dll文件生成lib文件 104

0214 如何将一个工程中的部分资源加到另一个工程中 104

0215 根据句柄获得窗口对象的方法 104

0216 如何共享MSDN 104

0217 从完整的文件名中去除路径 104

0218 从复合字符串中解析子串 105

0219 如何获得应用程序的完整路径 105

0220 修改对话框图标的几种方法 105

0221 将多个具有不同参数的函数赋值为同一个函数指针 105

第5章 控件技术 107

5.1 常用控件技巧 108

0222 如何一次绘制多个控件 108

0223 如何使控件对齐 108

0224 如何使控件大小相同 108

0225 如何调节控件的间距 108

0226 跟随鼠标移动的控件 109

0227 使用回车键移动控件焦点 109

0228 设置控件的Tab顺序 110

0229 为多个控件设置相同属性 110

0230 遍历控件 110

0231 随对话框大小改变的控件 110

0232 为控件添加提示 111

0233 如何隐藏控件 112

0234 设置控件是否可用 112

0235 将控件复制到其他对话框中 112

5.2 静态类控件和编辑框类控件应用 112

0236 使用Picture控件显示图片 112

0237 为静态控件添加成员变量 113

0238 设置静态文本控件的背景和字体颜色 113

0239 使用静态文本控件模拟按钮单击事件 114

0240 使Static控件背景透明 114

0241 制作超级链接控件 115

0242 自定义复选框控件 116

0243 数字格式的静态文本控件 117

0244 具有分隔条的静态文本控件 119

0245 限制编辑框只能输入数字 119

0246 限制编辑框的输入字符 120

0247 限制编辑框输入字符的个数 120

0248 设置编辑框多行显示 120

0249 设置在编辑框中按回车键进行换行 121

0250 为编辑框加滚动条 121

0251 设置密码编辑框 121

0252 获得编辑框控件中文本的行数 121

0253 选中编辑框中的文本 121

0254 让两个编辑框的内容同时改变 122

0255 设计多彩边框的编辑框 122

0256 设计漂亮的编辑框控件 123

0257 保护编辑框中的密码 124

0258 背景透明的编辑框控件 125

0259 如何显示使用RichEdit控件的对话框 126

0260 对RichEdit控件中指定的字符进行替换 126

0261 使用RichEdit控件显示图片 127

5.3 按钮类控件和时间日期控件 128

0262 使用按钮控件显示图片和图标 128

0263 设置单选按钮的群组 128

0264 在CButton按钮中显示位图 129

0265 在程序运行时使单选按钮被选中 129

0266 获得一组单选按钮中被选中的按钮文本 129

0267 设置时间控件的显示格式 130

0268 使用时间控件修改系统时间 130

0269 时间控件和日历控件的关联使用 131

0270 同时在日历控件中选择多个日期 131

5.4 列表框和组合框应用 131

0271 向ListBox控件中添加文本 131

0272 向ListBox控件中的指定位置插入文本 132

0273 为ListBox控件添加水平滚动条 132

0274 在ListBox控件间实现数据交换 133

0275 避免将重复数据添加到ListBox控件 134

0276 利用ListBox控件实现复选数据功能 135

0277 在ComboBox控件的属性窗口添加数据选项 135

0278 设置ComboBox控件中数据按字母顺序排列 136

0279 带查询功能的ComboBox控件 136

0280 使用ComboBox控件列举磁盘目录 137

0281 自动调整ComboBox控件的列表宽度 138

5.5 ListControl控件、树控件和标签控件 139

0282 设置ListControl控件的显示风格 139

0283 为ListControl控件设置列标题 139

0284 为ListControl控件添加行 139

0285 为ListControl控件添加列 139

0286 设置ListControl控件的扩展风格 140

0287 设置ListControl控件数据的排列顺序 140

0288 单击ListControl控件列标题进行排序 140

0289 具有热点效果的视图控件 141

0290 具有背景的列表视图控件 143

0291 设计类似OutLook的导航列表控件 143

0292 以+、-号和线条形式显示树控件节点层级关系 149

0293 如何在程序运行时展开根节点 149

0294 动态编辑树控件的节点 149

0295 带复选功能的树控件 150

0296 使用树控件显示磁盘目录 151

0297 向TXT文件中保存并提取树控件中数据 152

0298 具有背景的树形控件 154

0299 在树形控件中利用位图添加复选框 154

0300 为标签控件添加标签 157

0301 带图标的标签控件 157

0302 设置按钮形状的标签 158

0303 在控件底部显示标签选项 158

0304 CTabCtrl控件的使用方法 158

5.6 其他基本控件应用 159

0305 为微调控件建立伙伴控件 159

0306 设置进度条控件的显示方式 159

0307 如何设置进度条控件的范围和步长 159

0308 设置滑标控件的滑块形状 160

0309 使用热键控件 160

0310 自定义滚动条控件 160

0311 设置滚动条的背景颜色 162

0312 利用CImageList绘制图标 162

0313 自定义群组框控件 162

5.7 常用ActiveX控件 163

0314 导入ActiveX控件 163

0315 使用ADO Data和DataGrid控件连接数据库 164

0316 刷新ADO Data控件的数据源 164

0317 使DataGrid控件不可编辑 165

0318 设置DataGrid控件显示时的列宽 165

0319 对DataGrid单元格数据进行计算 165

0320 将DataGrid控件中数据输出到Excel中 166

0321 使用条形码控件 167

0322 在程序中如何为条形码控件赋值 168

5.8 MSChart控件 168

0323 如何通过代码将MSChart控件关联到MSADODC控件上 168

0324 如何修改MSChart控件的字体和颜色 168

0325 显示柱型图 168

0326 显示柱型图数据对比 169

0327 显示折线图数据信息 169

0328 显示折线图数据对比 170

0329 显示饼型图 170

0330 显示多个饼型图数据对比 171

0331 使用区域进行数据对比 171

第6章 用户界面 173

6.1 窗体标题栏应用 174

0332 闪烁标题栏的窗体 174

0333 隐藏和显示标题栏 174

0334 拖动没有标题栏的窗体 174

0335 获取标题栏中的内容 174

0336 滚动的窗体标题栏 175

0337 让窗体的标题栏不响应鼠标双击事件 175

0338 无标题对话框的拖动方法 176

6.2 窗体位置和大小控制 176

0339 不可移动的窗体 176

0340 始终在最上面的窗体 176

0341 跟随鼠标移动的窗体 177

0342 控制窗体的最大化和最小化 178

0343 判断窗体是否最小化在任务栏 178

0344 可调整大小的对话框 179

0345 限制窗体的大小 179

0346 使用鼠标按键调整窗体大小 179

0347 根据图片大小显示的窗体 180

0348 获取当前鼠标点处的控件 180

0349 在标题栏上绘制控件的简单方法 181

6.3 个性化窗体 181

0350 半透明窗体 181

0351 透明窗体 182

0352 字型窗体 183

0353 圆角窗体 183

0354 以图片的形状显示窗体 184

0355 应用程序背景与桌面融合 185

0356 制作立体窗口阴影效果 186

6.4 动画窗体界面 186

0357 动画显示窗体 186

0358 淡入淡出的窗体 187

0359 如QQ般隐藏的窗体 188

0360 可横向伸展的对话框 188

0361 可纵向伸展的对话框 189

0362 调用Office助手 189

0363 屏幕滚动字幕 190

0364 在窗体中显示彩虹文字 191

0365 在窗体中实现文字横拉效果 192

0366 在窗体中实现万花筒效果 192

0367 在窗体中实现动画效果 193

6.5 实用窗体技术 195

0368 随机更换背景的窗体 195

0369 显示欢迎窗体 195

0370 显示关于窗体 196

0371 不使用ESC键关闭窗体 197

0372 关闭窗体前弹出确认对话框 197

0373 如何在主窗体显示前弹出登录框 197

0374 设置对话框背景颜色 198

0375 使用画刷绘制背景颜色 198

0376 设置窗体颜色渐变 199

0377 将对话框以位图形式保存到磁盘中 199

0378 在对话框中显示HTML文件 201

0379 在对话框中创建视图 202

0380 如何共享对话框资源 203

0381 如何实现窗体继承 203

0382 怎样使对话框的关闭按钮变灰 204

0383 模式对话框与非模式对话框的使用 204

0384 在对话框中使用CDialogBar 204

0385 如何在基于对话框的程序中为控件设置提示信息 205

6.6 光标应用 205

0386 十字光标定位 205

0387 获得光标的位置坐标 206

0388 限制光标的移动范围 206

0389 如何建立一个等待光标 207

6.7 菜单应用 207

0390 创建级联菜单 207

0391 为菜单添加快捷键 207

0392 在系统菜单中添加菜单项 207

0393 带历史信息的菜单 208

0394 设置菜单是否可用 209

0395 为菜单添加核对标记 210

0396 浮动的菜单 210

0397 单击右键弹出菜单 211

0398 可以下拉的菜单 212

0399 任务栏托盘弹出菜单 212

0400 绘制渐变效果的菜单 213

0401 将菜单项的字体设置为粗体 217

6.8 工具栏和状态栏应用 218

0402 带背景的工具栏 218

0403 在工具栏中添加编辑框 218

0404 具有提示功能的工具栏 219

0405 工具栏按钮的热点效果 220

0406 定义XP风格的工具栏 221

0407 带进度条的状态栏 222

0408 显示系统时间的状态栏 222

0409 显示滚动字幕的状态栏 223

0410 显示动画的状态栏 224

0411 使状态栏随对话框的改变而改变 224

6.9 文档视图结构应用 225

0412 向视图中放置控件 225

0413 分割窗口 226

0414 实现视图窗口的任意分割 226

0415 编辑视图CEditView类应用 227

0416 表单视图CFormView类应用 227

0417 滚动视图CScrollView类应用 227

0418 树型视图CTreeView类应用 228

0419 列表视图CListView类应用 229

0420 HTML视图CHtmlView类应用 229

0421 文档/视图结构的打印流程 230

第7章 通用对话框 231

7.1 文件对话框 232

0422 打开对话框 232

0423 可以显示图片预览的打开对话框 233

0424 另存为对话框 234

0425 隐藏文件对话框中的控件 234

0426 使用Windows 2000新型的打开对话框 235

7.2 查找替换对话框 236

0427 查找对话框 236

0428 设置查找方向 237

0429 设置是否区分大小写 237

0430 替换对话框 239

0431 设置全部替换 240

7.3 其他通用对话框 241

0432 打印对话框 241

0433 打印设置对话框 241

0434 页面设置对话框 242

0435 颜色对话框 243

0436 字体对话框 243

第8章 图形图像与多媒体 245

8.1 字体效果 246

0437 如何设计空心字 246

0438 渐变颜色的空心字 246

0439 如何设计贴图字 247

0440 获取路径点信息 248

0441 文字跟随鼠标 249

0442 空间旋转字体 250

0443 文字水平滚动 251

0444 垂直滚动的字体 252

0445 可任意旋转的文字 253

8.2 OpenGL 254

0446 制作OpenGL动画 254

0447 利用OpenGL绘制立体模型 256

8.3 特殊曲线 259

0448 绘制蜗牛线 259

0449 绘制贝塞尔曲线 260

0450 绘制正弦曲线 261

8.4 图像特效 262

0451 图像锐化处理 262

0452 图像柔化处理 264

0453 图像反色处理 265

0454 图像灰度处理 266

0455 图像浮雕效果 267

0456 图像翻转 269

0457 图像缩放 270

0458 图片剪切 271

0459 图片马赛克效果 271

0460 水平百叶窗显示图片 273

0461 垂直百叶窗显示图片 274

0462 显示3D灰色图像 275

8.5 图像控制 276

0463 在图片上绘制线条 276

0464 在图片上绘制网格 277

0465 打开高颜色质量图像 278

0466 最顶层窗体 279

0467 在视图中拖动图片 280

0468 屏幕截图 281

0469 保存屏幕图像到剪贴板 283

0470 获取图像RGB值 283

0471 显示Word艺术字 285

0472 渐隐渐显的图像 286

0473 保留椭圆下图片内容 288

0474 去除椭圆下的图片内容 289

8.6 图像基础技术 290

0475 如何创建含有位图的画刷 290

0476 保存屏幕抓图文件 290

0477 利用内存画布防止绘图时出现屏幕闪烁 291

0478 创建几何画笔 292

0479 绘制网格 293

0480 创建不同的画刷 294

0481 填充矩形区域 295

0482 模拟时钟 296

0483 颜色渐变算法 297

0484 如何绘制渐变颜色 297

0485 绘制立体模型 298

0486 如何设计字型窗体 300

0487 元文件的保存与打开 300

0488 使用IFS算法模拟山 301

0489 图像居中显示 302

0490 图片融合效果 303

0491 保存设备上下文 303

0492 将设备上下文保存到剪贴板 304

0493 复制设备上下文 304

0494 设计彩票抽奖机游戏 304

0495 手写数字识别程序 306

8.7 多媒体声音控制 309

0496 简单声音录制与播放 309

0497 可以选择播放曲目的CD播放器 310

0498 控制音量 311

0499 控制左右声道 313

0500 利用PC喇叭播放声音 313

0501 定时播放WAV文件 314

0502 开发具有记忆功能的MP3播放器 315

0503 用Visual C++编写MIDI文件播放程序 316

8.8 多媒体应用 317

0504 滚动字体的屏幕保护 317

0505 像册屏幕保护程序 318

0506 成组浏览图片 320

0507 如何设计画图程序 321

8.9 动画效果 323

0508 标题栏及任务栏动画图标 323

0509 通过Image控件实现动画 323

0510 通过DrawIcon实现图标动画 324

0511 系统托盘动态图标 324

0512 显示系统桌面助手 325

8.10 多媒体文件的播放 326

0513 播放Gif动画 326

0514 播放Flash动画 326

0515 播放RM文件 327

0516 播放VCD 329

0517 显示JPEG图像 330

8.11 Direct Show编程 331

0518 利用Direct Show进行视频捕捉 331

0519 利用Direct Show进行音频捕捉 333

第9章 Windows相关技术 337

9.1 磁盘信息 338

0520 获取驱动器的卷标 338

0521 检测软驱是否有软盘 339

0522 判断是否插入存储器 339

0523 判断光驱是否有光盘 339

0524 判断驱动器类型 340

0525 获取磁盘序列号 341

0526 获取磁盘空间信息 342

9.2 磁盘操作 343

0527 格式化磁盘 343

0528 关闭磁盘共享 343

0529 设置磁盘卷标 343

0530 磁盘碎片整理 344

0531 从FAT32转换为NTFS 344

0532 急藏磁盘分区 345

0533 显示被隐藏的磁盘分区 345

0534 如何更改分区号 346

0535 如何监视硬盘 346

9.3 系统控制与调用 347

0536 调用外部程序的方法 347

0537 调用创建快捷方式向导 348

0538 访问启动控制面板中的各项 348

0539 控制光驱的弹开与关闭 349

0540 实现关闭、重启和注销计算机 349

0541 关闭和打开显示器 350

0542 打开和关闭屏幕保护 350

0543 关闭当前输入法 350

0544 程序发出提示音 351

0545 列举系统中的可执行文件 351

9.4 应用程序操作 352

0546 如何确定应用程序没有响应 352

0547 检索任务管理器中的任务列表 353

0548 判断某个程序是否运行 353

0549 设计具有插件功能的应用程序 355

0550 怎样在程序中执行DOS命令 359

0551 修改其他进程中窗口的标题 359

0552 如何设计换肤程序 360

0553 PE档案格式分析 364

0554 修改应用程序图标 365

0555 列举应用程序使用的dll文件 368

0556 调用具有命令行参数的应用程序 369

0557 在程序中调用一个子进程直到其结束 371

0558 提取并保存应用程序图标 371

9.5 系统工具 373

0559 为程序添加快捷方式 373

0560 用列表显示系统正在运行的程序 375

0561 如何获得毫秒级时间 376

0562 注册和卸载组件 376

0563 清空回收站 377

0564 如何在程序中显示文件属性对话框 377

9.6 桌面相关 377

0565 隐藏和显示桌面文件 377

0566 隐藏和显示开始按钮 378

0567 隐藏和显示Windows任务栏 378

0568 判断屏幕保护程序是否在运行 379

0569 判断系统是否使用大字体 379

0570 获取任务栏属性 379

0571 获取任务栏窗口句柄 379

0572 隐藏任务栏时钟 380

0573 改变桌面背景颜色 380

0574 获取桌面列表视图句柄 380

9.7 系统信息 380

0575 获取CPUID值 380

0576 获取CPU时钟频率 381

0577 获得Windows和System的路径 381

0578 获取特殊文件夹路径 382

0579 检测系统启动模式 382

0580 判断操作系统类型 383

0581 获取当前系统的运行时间 383

0582 如何获取Windows 2000系统启动时间 384

0583 获取处理器信息 385

0584 通过内存映射实现传送数据 385

0585 检测是否安装声卡 387

0586 获取当前用户名 387

0587 获取系统环境变量 387

0588 修改计算机名称 388

0589 获取当前屏幕颜色质量 388

0590 获得当前屏幕的分辨率 388

9.8 进程与线程 389

0591 如何使用TLS 389

0592 创建线程 389

0593 创建用户界面线程 390

0594 终止线程的方法 390

0595 使进程处于睡眠状态 391

0596 启动记事本并控制其关闭 391

0597 创建闪屏线程 392

0598 利用互斥对象实现线程同步 393

0599 利用临界区实现线程同步 395

0600 利用事件对象实现线程同步 396

0601 用信号量实现线程同步 398

0602 挂起系统 399

0603 调用记事本程序并暂停其运行 399

0604 等待打开的记事本程序关闭 400

0605 禁止程序重复运行 400

0606 在Visual C++与Delphi间实现对象共享 401

9.9 消息 402

0607 如何自定义消息 402

0608 如何向Windows注册消息 402

0609 PostMessage和SendMessage函数的区别 402

0610 利用WM COPYDATA消息实现进程间数据传递 403

9.10 剪贴板 404

0611 列举剪贴板中数据类型 404

0612 监视剪贴板复制过的内容 405

0613 通过剪贴板传递全局数据 406

9.11 鼠标键盘 407

0614 交换鼠标左右键 407

0615 设置鼠标双击的时间间隔 407

0616 获得鼠标键数 407

0617 获取鼠标下窗体句柄 407

0618 模拟鼠标单击按钮 409

0619 在程序中添加快捷键 410

0620 在对话框中使用加速键 411

0621 处理鼠标滚轮消息 411

0622 获取键盘按键 412

0623 获取键盘类型及功能号 412

0624 控制键盘指示灯 413

9.12 动态链接库与钩子 414

0625 从动态库中获取位图资源 414

0626 屏蔽键盘POWER键 415

0627 屏蔽键盘WIN键 415

0628 禁止使用〈Alt+F4〉键来关闭窗体 416

0629 枚举模块中的所有图标 417

0630 使用模块对话框资源 418

0631 替换应用程序中对话框资源 419

0632 可导出的动态链接库函数 420

0633 动态链接库动态加载 420

第10章 内核技术 423

10.1 内核对象基本概念 424

0634 内核对象的创建及在程序中的应用 424

0635 内核对象与GDI对象的区别 424

0636 如何获取进程句柄 424

0637 如何存储内核对象句柄 424

0638 线程与进程的关系 425

0639 如何在一个进程中管理多个进程 425

10.2 内核对象操作技术 425

0640 如何创建作业 425

0641 如何将进程放入作业中 425

0642 如何终止作业中的进程 426

0643 如何限制作业中的进程 426

0644 内核对象句柄的继承 427

0645 利用匿名管道实现进程间通信 427

0646 如何结束未正常退出的线程 429

第11章 注册表和INI文件 431

11.1 INI文件的读写函数 432

0647 向INI文件中指定键值写入字符串数据 432

0648 获取INI文件中指定键值下整型数据 432

0649 获取INI文件中指定键值下字符串数据 432

0650 向INI文件指定节下写入数据 433

0651 获取INI文件中所有节名 434

0652 将数据结构数据写入INI文件 435

0653 获取INI文件中数据结构数据 435

0654 获取INI文件指定节下的键名及数据 436

11.2 读写注册表的API函数 436

0655 三种读写注册表的函数 436

0656 创建带安全属性的注册表项 437

0657 快速创建注册表项 437

0658 注意子注册表项字符串写法 437

0659 打开注册表项 438

0660 判断注册表项是否存在 438

0661 删除注册表项 438

0662 打开注册表根项 439

0663 向指定注册表项默认键值写入数据 439

0664 设置注册表键值数据 440

0665 快速设置注册表键值字符串数据 441

11.3 读写注册表的MFC类 441

0666 使用CRegKey类写入新键值 441

0667 使用CRegKey类写入默认键值 442

0668 使用CRegKey类查询键值 442

11.4 注册表的查询与枚举 442

0669 查询注册表键值信息 442

0670 快速查询注册表键值信息 443

0671 两个API函数可以枚举注册表项 444

0672 列举注册表中启动项 444

0673 两个API函数可以枚举注册表键值 445

0674 枚举安装程序 446

11.5 读写Win.ini文件 446

0675 获取Win.ini文件中的数据 446

0676 设置Win.ini文件中的数据 447

11.6 注册表应用 448

0677 保存注册表项 448

0678 开机自动运行 449

0679 隐藏和显示我的电脑 450

0680 隐藏和显示回收站 450

0681 隐藏显示所有驱动器 451

0682 禁止“查找”菜单 451

0683 禁止“文档”菜单 452

0684 在退出WINDOWS时清除“文档”中的记录 452

0685 禁用注册表编辑器 453

0686 禁止使用inf文件 453

0687 禁止使用reg文件 454

0688 无法显示隐藏文件或文件夹 454

第12章 文件与内存管理 455

12.1 文件的复制 456

0689 使用API函数CopyFile实现文件复制 456

0690 使用CFile类实现文件的复制 456

0691 实现网络文件复制 457

0692 使用CopyFileEx复制文件 458

12.2 文件的修改与删除 459

0693 重命名文件和文件夹 459

0694 批量移动文件 460

0695 删除文件 462

0696 删除文件夹 462

0697 将文件删除到回收站 463

12.3 文件创建与打开 464

0698 创建多级目录 464

0699 创建文件 465

0700 创建文件夹 465

0701 打开文件两种方法 465

0702 文件过滤器相关 466

0703 CFileDialog类选中多个文件 466

0704 拖曳文件到对话框 466

12.4 文件查找 467

0705 列举文件夹下所有文件 467

0706 指定目录查找文件 468

0707 显示磁盘目录 469

0708 用C语言判断文件是否存在 471

12.5 文件读写 471

0709 运行库函数读写文件 471

0710 C函数文件操作 472

0711 读取有规律文本文件 473

0712 读取XML文件中的数据 474

0713 制作日志文件 475

12.6 文件属性 476

0714 获取文件扩展名 476

0715 获取文件所在路径 477

0716 当前程序所在路径 478

0717 成员函数GetFileTitle的使用 478

0718 获取文件属性 478

0719 设置文件属性 480

12.7 内存相关 481

0720 获取内存状态 481

0721 获得指定内存基本信息 481

0722 查看内存泄露 482

12.8 文件实用工具 483

0723 将Word文档存成文本文件 483

0724 如何加密文件 484

0725 二进制浏览文件 485

0726 如何设计文件分割器 486

0727 设置文件夹图标 488

0728 获取文件图标 489

第13章 数据库 491

13.1 ADO技术 492

0729 导入ADO动态链接库 492

0730 创建ADO对象的两种方法 492

0731 使用ADO连接数据库 492

0732 利用ADO连接SQL Server数据库的两种格式 493

0733 遍历记录集 493

0734 使用记录集对象的AddNew方法添加记录 494

0735 使用记录集对象的Update方法修改记录 494

0736 使用记录集对象的Delete方法删除记录 495

0737 利用Execute执行SQL语句 496

0738 在应用程序中使用事务 496

13.2 数据库应用 497

0739 获取SQL Server数据库的表结构 497

0740 获取Access数据库的表结构 498

0741 获得SQLServer中数据库名称 499

0742 如何判断一个表是否存在 500

0743 如何备份数据库 501

0744 如何还原数据库 501

0745 对数据库进行录入图片 502

0746 对数据库进行提取图片 503

0747 将Excel表格中数据导入到数据库中 504

0748 将数据库中数据导入到Word文档中 506

0749 将数据库文件转化为文本文件 507

0750 枚举SQL Server服务器 508

0751 断开SQL Server服务器连接 509

0752 在程序中执行SQL Server脚本 509

0753 附加SQL Server数据库 510

0754 利用ADO访问带密码的Access数据库 510

0755 如何使ADO Recordset对象的RecordCount可用 511

0756 如何获取ADO连接数据库的字符串 511

0757 制作数据库连接文件 511

0758 结束某个程序与SQL Server数据库的连接 512

0759 获取SQL Server数据库连接的进程数量 512

13.3 SQL基本查询 512

0760 在查询中使用通配符 512

0761 使用Like进行模糊查询 513

0762 Not与谓词进行组合条件的查询 513

0763 利用Between...and进行时间段查询 513

0764 利用关系表达式进行时间段查询 514

13.4 SQL相关技术 515

0765 列出数据中的重复记录和记录条数 515

0766 利用关键字Distinct去除重复记录 515

0767 格式化金额 516

0768 随机显示数据表中记录 516

0769 使用Top语句查询前3条记录 516

0770 查询后3条记录 517

0771 对数据进行降序排序 517

0772 分组统计查询结果 518

0773 利用Having语句过滤分组数据 518

0774 追加查询结果到已存在的表 519

0775 对数据库数据进行局部删除 520

0776 把查询结果生成表 520

0777 使用IsNull函数来处理空值 521

0778 使用Nullif函数来处理空值 521

13.5 多表和连接查询 522

0779 利用From子句进行多表查询 522

0780 合并结果集 522

0781 利用多个表中的字段创建新记录集 523

0782 如何使用左外连接查询 523

0783 如何使用右外连接查询 524

0784 如何使用完全外连接查询 524

0785 利用Transform进行交叉表查询 525

13.6 嵌套查询 525

0786 嵌套查询 525

0787 使用一个单行的子查询来更新列 526

0788 使用IN引入子查询限定查询范围 526

0789 带Some的嵌套查询 527

0790 带Any的嵌套查询 527

0791 带All的嵌套查询 528

0792 带Exists的嵌套查询 528

13.7 聚合函数 529

0793 MAX函数和MIN函数的应用 529

0794 利用聚集函数Sum对数据进行汇总 529

0795 利用聚集函数Avg求数据的平均值 530

0796 利用聚集函数Count统计记录数量 530

13.8 数学函数 531

0797 使用ABS函数求绝对值 531

0798 CEILING函数的应用 531

0799 FLOOR函数的应用 532

0800 EXP函数的应用 532

0801 使用ROUND函数对数据四舍五入 533

0802 使用POWER函数计算乘方 533

0803 使用SQUARE函数计算平方 534

0804 使用SQRT函数计算平方根 534

0805 使用RAND函数取随机浮点数 534

0806 使用PI函数(圆周率) 535

13.9 字符串函数 535

0807 从MID函数截取字符串 535

0808 LEFT函数取左侧字符串 536

0809 RIGHT函数取右侧字符串 536

0810 使用LTRIM函数去除左侧空格 537

0811 使用RTRIM函数去除右侧空格 538

0812 使用REPLACE函数替换字符串 538

0813 转换为小写字符 539

0814 转换为大写字符 539

0815 使用LEN函数返回字符个数 540

0816 取得指定个数的子字符串 540

0817 取得字符串的起始位置 541

0818 以指定次数重复输出字符串 542

0819 获得字符表达式的反转 542

0820 获得由重复空格组成的字符串 543

0821 删除指定的字符并在指定的位置插入字符 543

13.10 日期时间函数 544

0822 根据出生日期计算年龄 544

0823 添加日期时间 545

0824 返回当前系统日期时间 545

0825 返回指定日期、指定部分的整数 546

0826 返回指定日期、指定部分的字符串 546

0827 返回当前UTC时间 547

0828 如何应用YEAR函数 547

0829 如何应用MONTH函数 548

0830 如何应用DAY函数 549

13.11 视图、触发器和存储过程 549

0831 创建视图 549

0832 删除视图 550

0833 创建触发器 551

0834 创建存储过程 552

0835 使用存储过程 553

0836 删除存储过程 553

0837 调用具有输出参数的存储过程 554

0838 执行具有out参数的存储过程 555

第14章 打印技术 557

14.1 打印控制 558

0839 获取打印机画布 558

0840 在打印位图时防止打印灰色斑点 558

0841 获取打印机DC 558

0842 设置打印页数 559

0843 设置打印份数 559

0844 设置分页打印 560

0845 实现横向打印 560

0846 设置打印纸边距 561

0847 设置打印纸大小 562

0848 获取当前选择的打印机 563

0849 获取用户选择的打印机端口 563

0850 如何解决屏幕和打印机分辨率不统一的问题 563

0851 打印新一页 563

0852 获取当前打印机设置打印纸的左边距和上边距 564

14.2 打印应用 564

0853 在基于对话框的程序中进行打印预览 564

0854 在基于对话框的程序中调用文档视图结构 565

0855 打印窗体 566

0856 打印图片 567

0857 打印报表 567

0858 打印图表 569

0859 打印条形码 570

0860 利用Word进行打印 571

0861 批量打印Word文档 572

0862 利用Excel进行打印 573

第15章 硬件程序开发 575

15.1 视频程序开发 576

0863 如何使用VFW 576

0864 VFW视频捕捉的开发流程 576

0865 将视频演示作为应用程序的启动界面 576

0866 开发远程监控程序 577

0867 编写视频录像程序 580

15.2 硬件设备程序开发 581

0868 使用IC卡的注意事项 581

0869 利用IC卡制作考勤软件 581

0870 将密码写入加密狗 585

0871 如何使用加密狗验证用户身份 585

0872 如何利用条形码扫描器销售商品 586

0873 利用神龙卡设计点歌系统 588

0874 开发语音卡拨号程序 590

0875 开发语音卡来电显示 594

0876 利用短信猫发送短信 596

0877 利用短信猫实现远程关机 597

0878 将显示器设置为节能模式 599

15.3 串口程序开发 599

0879 常用串口通信函数 599

0880 利用串口函数开发应用程序 609

0881 查看系统中打开的端口 610

0882 判断某个端口是否打开 611

0883 利用猫拨打电话 611

0884 判断Medom连接在哪个Com上 612

第16章 局域网编程 613

16.1 局域网操作 614

0885 在应用程序中映射网络驱动器 614

0886 获得映射驱动器的路径名称 615

0887 列举局域网内的计算机 615

0888 局域网中文件夹的共享 616

0889 获取网卡地址 617

0890 在局域网中发送短消息 618

0891 获取多穴主机的多个IP地址 619

16.2 IE浏览器操作 620

0892 如何清空IE的历史记录 620

0893 如何删除Internet临时文件 620

0894 修改IE标题栏内容 621

0895 隐藏IE浏览器的右键关联菜单 622

0896 设置IE的默认主页 622

0897 清空上网历史记录 623

0898 修改网卡物理地址 623

0899 隐藏和显示网上邻居 624

0900 快速访问网页及发送邮件 624

0901 判断当前活动窗口是否为IE 625

第17章 套接字技术 627

17.1 套接字基础技术 628

0902 套接字函数讲解 628

0903 使用套接字函数 632

0904 使用MFC套接字 632

0905 网络字节顺序 632

0906 TCP/IP的C语言描述 633

0907 套接字的断开重连 633

0908 在套接字中如何设置超时连接 635

0909 在套接字关闭时释放套接字资源 636

17.2 套接字实例开发 636

0910 设计网络五子棋游戏 636

0911 开发网络监听程序 640

0912 利用音频函数实现局域网实时音频传送 643

0913 利用UDP协议实现广播通信 644

0914 利用套接字实现HTTP客户端应用程序 645

0915 IP端口扫描 646

第18章 Internet编程 649

18.1 网页操作技术 650

0916 获取网页源码 650

0917 提取网页所有连接 651

0918 如何使用ISAPI过滤器 652

0919 如何使浏览器支持ISAPI DLL 654

0920 如何卸载浏览器加载的ISAPI DLL 654

18.2 FTP编程技术 655

0921 遍历FTP文件目录 655

0922 FTP应用实现步骤 656

0923 获取FTP文件大小 656

0924 FTP常用命令讲解 657

0925 利用套接字实现FTP文件下载 657

18.3 邮件发送技术 660

0926 利用MAPI发送电子邮件 660

0927 分析Internet的邮件格式 662

0928 如何进行Base64编码 662

0929 开发邮件发送程序 664

0930 POP3命令讲解 669

0931 检测邮箱中是否有邮件 669

18.4 常用网络操作技术 669

0932 HTTP多线程文件下载 669

0933 HTTP应用实现步骤 671

0934 修改计算机的网络名称 672

0935 TAPI的基本通信过程分析 672

0936 在程序中实现网络拨号 672

第19章 ATL Com编程 675

19.1 ATL应用程序开发 676

0937 ATL与Com的关系 676

0938 编写控制面板小程序 676

0939 编写扩展存储过程 677

0940 用ATL编写Windows服务 679

0941 获取Word文档的属性 681

0942 在程序中导入Word文件 683

0943 在程序中显示PDF文件 684

0944 向IE工具条中添加图标 684

19.2 开发ocx控件 684

0945 在程序中注册和卸载ocx控件 684

0946 在网页中调用Visual C++对话框 685

0947 开发ASP文件上传控件 686

第20章 常用算法 689

20.1 计算类算法 690

0948 计算1~10之间数的阶乘 690

0949 如何使用完数的算法 690

0950 求最大公约数 691

0951 求最小公倍数 692

0952 统计中文字符数的算法 692

0953 统计英文字符数的算法 693

0954 统计数字个数的算法 693

0955 如何计算x的y次方 693

0956 1~6位数的任意排列 694

0957 获得汉字的拼音简码 695

0958 获得汉字的区位码 696

0959 根据汉字区位码获得汉字 696

0960 数据加密、解密算法 697

0961 产生0~N范围内的随机数算法 698

0962 随机产生中奖号码的算法 698

0963 如何求解时钟指针 698

20.2 判断类算法 700

0964 判断是否是闰年 700

0965 判断素数的算法 701

0966 判断城市电话区号是否合法的算法 701

0967 判断身份证是否合法的算法 702

20.3 排序算法 704

0968 如何使用选择法排序 704

0969 如何使用冒泡法排序 704

0970 如何使用交换法排序 705

0971 如何使用插入法排序 705

0972 如何进行快速排序 706

20.4 典型算法 707

0973 如何使用穷举算法 707

0974 如何使用递归算法 708

0975 如何求解韩信点兵 709

0976 如何求解百钱百鸡算法 709

0977 如何使用菲波那契数列算法 710

0978 如何求水仙花数的算法 711

0979 如何实现数字斜塔 711

0980 如何使用杨辉三角的算法 712

0981 如何验证歌德巴赫猜想的算法 713

0982 如何使用大整数相乘算法 714

0983 如何实现ASCII码压缩方法 715

0984 如何实现RSA数据加密算法 716

0985 如何实现猫吃老鼠算法 717

20.5 转换类算法 719

0986 如何进行8421码转换 719

0987 将Byte转换成GB、MB和KB 720

0988 十进制和二进制数相互转换的算法 721

0989 十进制和十六进制数相互转换的算法 722

0990 十六进制和二进制数相互转换的算法 723

0991 金额大小写转换的算法一 725

0992 金额大小写转换的算法二 730

0993 数字大小写转换的算法 732

20.6 简单游戏算法 733

0994 猜数字游戏 733

0995 井字棋游戏 734

0996 掷骰子 736

0997 赛跑游戏 737

第21章 联机帮助 739

0998 通过Word文档制作htm文件 740

0999 为HTM文件设置超级链接 740

1000 使用HTML Help Workshop工具创建新工程 740

1001 设置显示在帮助文件工具条上的按钮 741

1002 设置帮助文件的窗口大小和位置 742

1003 设置帮助文件左侧的浏览窗口 743

1004 配置工程文件 744

1005 如何创建目录 744

1006 如何创建索引 745

1007 生成chm文件 747

1008 在Visual C++程序中调用帮助文件 747