第1篇 编程经验与感悟篇——站在他人臂膀上前行
第1章 正确入门方法与良好的编程习惯 2
感悟01 培养编程兴趣 2
感悟02 编程规范 4
感悟03 调试的重要意义 8
感悟04 不要将对象模板中的特定值进行硬编码 10
感悟05 在对象模板中提供详细的注释 12
感悟06 编写程序前首先进行需求分析 14
感悟07 避免编写可读性差的高难度代码 16
第2章 编程高手具有的基本素养和能力 17
经验01 重视基础 17
经验02 多与别人交流 19
经验03 良好的编程风格 20
经验04 数据库设计经验 22
经验05 锻炼开放性思维 24
经验06 写程序之前要分析 25
经验07 写程序之后要总结 26
经验08 软件需求规格说明书 26
第3章 程序设计原则 28
感悟08 抽象 28
感悟09 逐步求精 28
感悟10 模块化 29
感悟11 模块划分原则 30
感悟12 模块划分标准 30
感悟13 模块划分方法 31
第2篇 陷阱与谬误篇——汲取前人的教训
第4章 不可忽视的技术陷阱 34
陷阱01 溢出错误 34
陷阱02 变量未定义 35
陷阱03 文件未找到 35
陷阱04 子程序或函数未定义 36
陷阱05 要求常数表达式 36
陷阱06 要求对象 37
陷阱07 无效的过程调用或参数 37
陷阱08 对象已卸载 38
陷阱09 当前的操作无效 38
陷阱10 多步操作产生错误 39
陷阱11 无法执行循环体内部的语句块 40
陷阱12 死循环 40
陷阱13 无效的Next控制变量引用 41
陷阱14 For control控件变量已在使用 42
陷阱15 数组下标越界 42
陷阱16 数组维数错 43
陷阱17 对象变量或With块变量未设置 43
陷阱18 私有变量或局部变量与全局变量同名 44
陷阱19 算数取反陷阱 45
第1篇 编程经验与感悟篇——站在他人臂膀上前行
第1章 正确入门方法与良好的编程习惯 2
感悟01 培养编程兴趣 2
感悟02 编程规范 4
感悟03 调试的重要意义 8
感悟04 不要将对象模板中的特定值进行硬编码 10
感悟05 在对象模板中提供详细的注释 12
感悟06 编写程序前首先进行需求分析 14
感悟07 避免编写可读性差的高难度代码 16
第2章 编程高手具有的基本素养和能力 17
经验01 重视基础 17
经验02 多与别人交流 19
经验03 良好的编程风格 20
经验04 数据库设计经验 22
经验05 锻炼开放性思维 24
经验06 写程序之前要分析 25
经验07 写程序之后要总结 26
经验08 软件需求规格说明书 26
第3章 程序设计原则 28
感悟08 抽象 28
感悟09 逐步求精 28
感悟10 模块化 29
感悟11 模块划分原则 30
感悟12 模块划分标准 30
感悟13 模块划分方法 31
第2篇 陷阱与谬误篇——汲取前人的教训
第4章 不可忽视的技术陷阱 34
陷阱01 溢出错误 34
陷阱02 变量未定义 35
陷阱03 文件未找到 35
陷阱04 子程序或函数未定义 36
陷阱05 要求常数表达式 36
陷阱06 要求对象 37
陷阱07 无效的过程调用或参数 37
陷阱08 对象已卸载 38
陷阱09 当前的操作无效 38
陷阱10 多步操作产生错误 39
陷阱11 无法执行循环体内部的语句块 40
陷阱12 死循环 40
陷阱13 无效的Next控制变量引用 41
陷阱14 For control控件变量已在使用 42
陷阱15 数组下标越界 42
陷阱16 数组维数错 43
陷阱17 对象变量或With块变量未设置 43
陷阱18 私有变量或局部变量与全局变量同名 44
陷阱19 算数取反陷阱 45
第5章 开发人员意识中的常见谬误 46
谬误01 在循环起点或终点,使用LBound或UBound函数会降低循环执行的效率 46
谬误02 使用单行If...Then语句,可以提高判断速度 46
谬误03 判断非负整数是否为零,采用运算符“”比“”速度快 47
谬误04 使用Replace$比Replace好 47
谬误05 在单行中创建对象速度比多行快 47
谬误06 数据类型占用内存越少,速度越快 47
谬误07 使用动态数组有利于节约计算机资源 48
谬误08 Static Function的返回值等同于静态变量 48
谬误09 Visual Basic中的Basic是基础的意思 48
谬误10 ScaleHeight、ScaleWidth属性是对象内部区域的高度或宽度值 48
谬误11 私有主过程不能作为启动对象 49
谬误12 线程就是进程 49
谬误13 本机代码一定比运行解释型代码要快很多 50
谬误14 DoEvents命令必须放置在循环体内的第一行 50
谬误15 将Timer控件的Interval属性值设置为0代表立即响应计时事件 51
第3篇 技术细节篇——修炼编程内功心法
第6章 面向对象编程 54
细节01 面向对象编程简介 54
细节02 类的基本概念 54
细节03 对象的基本概念 54
细节04 对象的创建 56
细节05 对象的比较 56
细节06 对象所属类的判断 57
细节07 对象的清除 57
细节08 类中的属性 58
细节09 类中的方法 61
细节10 类中的事件 62
细节11 接口的应用 64
细节12 封装 64
细节13 多态 65
第7章 文件目录操作 67
细节14 改变当前驱动器 67
细节15 改变目录或文件夹 68
细节16 删除文件 68
细节17 创建目录或文件夹 69
细节18 复制文件 70
细节19 文件重命名 71
细节20 获取文件属性 72
细节21 设置文件属性 73
细节22 获取当前路径 75
细节23 获取文件创建或修改时间 75
细节24 获取文件长度 76
细节25 顺序文件的打开与关闭 76
细节26 顺序文件的读取 77
细节27 顺序文件的写入操作 80
细节28 随机文件的打开与关闭 82
细节29 读取随机文件 83
细节30 写入随机文件 83
细节31 二进制文件的打开与关闭 85
细节32 二进制文件的读取与写入操作 85
细节33 使用FSO对象对磁盘驱动器进行操作 87
细节34 使用FSO对象浏览文件夹 89
细节35 TextStream对象与文件的读写 90
细节36 访问配置文件 93
第8章 网络编程技术 95
细节37 TCP、UDP和IP 95
细节38 建立服务器/客户端的通信 99
细节39 建立点对点通信 101
细节40 网络层次模型 103
细节41 利用API函数下载文件 106
细节42 网络映射 107
细节43 SMTP与发送电子邮件 108
细节44 POP3与接收电子邮件 110
细节45 使用OutLook发送电子邮件 112
细节46 提取网页源码 112
细节47 加入收藏夹 113
细节48 用Internet Transfer编写FTP程序 114
细节49 利用API获得IP地址 118
细节50 利用JMail收发邮件 119
第9章 数据库开发方面的技术 124
细节51 使用ADO控件连接ODBC数据源 124
细节52 连接Access 2000、Access 2003数据库 125
细节53 连接Access 2007数据库 127
细节54 连接SQL Server数据库 128
细节55 用代码连接数据库 128
细节56 使用ADO对象查询数据 130
细节57 使用ADO对象实现数据的增加、修改及删除 131
细节58 通过触发器对数据进行增删改 132
细节59 Data控件使用有密码的Access数据库 134
细节60 创建Access数据库 134
细节61 定义Access数据库索引 135
细节62 移动记录指针 136
细节63 使用绑定控件录入、修改、删除记录 138
细节64 在不同的数据环境中进行日期查询 139
细节65 NOT与谓词进行组合条件的查询 140
细节66 正确使用SELECT语句中的单引号 141
细节67 对查询结果进行排序 142
细节68 对数据库数据进行局部更新 144
细节69 对数据库数据进行局部删除 145
细节70 利用多个表中的字段创建新记录集 145
细节71 追加查询结果到已存在的表 146
细节72 将查询结果分组小计 147
细节73 Access数据库查询中通配符的使用 147
细节74 SQL Server数据库查询中通配符的使用 149
细节75 利用Execute执行SQL语句 150
细节76 允许用户撤销绑定控件中的操作 152
第10章 图形图像多媒体 153
细节77 图像的保存与读取 153
细节78 图像的剪裁 154
细节79 图像的合成 156
细节80 提取图片中的对象 158
细节81 将彩色图片转换为灰度图片 159
细节82 将位图转换为图标 161
细节83 图像的平铺 162
细节84 屏幕抓图 163
细节85 利用sndPlaySound函数播放音频文件 165
细节86 利用mciExecute函数播放WAV文件 165
细节87 利用mciSendString函数播放动画 167
细节88 利用DirectSound编程实现实时混音 168
细节89 列举DirectX显示模式 170
细节90 播放MIDI文件 172
细节91 使用MediaPlayer控件播放MP3文件 172
细节92 使用mciSendString函数制作录音机 173
第11章 人性化应用程序的开发 176
细节93 资源加载资源编辑器的加载 176
细节94 资源文件的创建 177
细节95 利用LoadResString函数加载文本资源 179
细节96 利用LoadeResPicture函数加载图像资源 180
细节97 利用LoadResData函数加载多种类型的资源 181
细节98 利用资源文件设置菜单 182
细节99 利用资源文件设置鼠标效果 184
细节100 利用资源文件设置图片 184
细节101 弹出式菜单 186
细节102 为应用程序创建热键 188
细节103 开发国际化应用程序 191
细节104 闪动的托盘图标 194
细节105 使用VB开发绿色软件 197
第4篇 编程技巧篇——程序员的神兵利器
第12章 窗体与界面设计技巧 200
技巧01 改变菜单文字的颜色 200
技巧02 删除MDI窗体系统菜单中“最大化” 201
技巧03 创建菜单单选项 201
技巧04 向系统菜单中插入自定义菜单项 203
技巧05 在窗体上单击鼠标右键调用系统菜单 205
技巧06 菜单项的动态载入 206
技巧07 调用其他应用程序的菜单命令项 206
技巧08 按下工具栏按钮,弹出按钮菜单 207
技巧09 无标题栏窗体中创建右键菜单 208
技巧10 获取当前打开窗口数量 209
技巧11 禁用MDI窗体控制栏中“最大化”按钮 209
技巧12 禁止调整MDI窗体大小 210
技巧13 创建大小固定的窗体 211
技巧14 关于子窗体的刷新问题 211
技巧15 MDI窗体背景自适应 212
技巧16 获取标题栏内容不确定的窗口句柄 214
技巧17 统计程序被重复调用次数 214
技巧18 限制调整窗口大小的最大值 217
技巧19 窗口跟随 218
技巧20 移动无标题栏窗体 221
技巧21 程序运行时隐藏标题栏 222
技巧22 隐藏其他程序窗口 223
技巧23 创建窗口渐层背景 224
技巧24 创建粘性按钮 225
技巧25 创建彩虹文字 225
技巧26 更改下拉列表框宽度 226
技巧27 更改进度条颜色 227
技巧28 制作倒计时对话框 228
技巧29 显示Windows搜索对话框 229
技巧30 使用API函数显示颜色对话框 230
技巧31 创建文件夹对话框的简单方法 231
技巧32 多选文件打开对话框 232
技巧33 使用InputBox创建密码输入框 234
第13章 控件应用技巧 236
技巧34 实现文本框OVERWRITE功能 236
技巧35 避免按回车键产生“嘀”声 236
技巧36 控制文本框中输入的内容 236
技巧37 文本框撤销命令 237
技巧38 文本框获取焦点自动全选 238
技巧39 修改文本框内边距 238
技巧40 强制用户在文本框中输入有效信息 240
技巧41 在现有文本框内容中添加新行 240
技巧42 清除窗体内所有文本框中的内容 240
技巧43 获取文本框中内容的行数 241
技巧44 文本框中只允许输入小写字母 242
技巧45 创建可以调整大小的文本框 242
技巧46 自定义文本框插入符 243
技巧47 过滤在文本框中输入的内容 244
技巧48 通过使用SendKeys语句限制输入非数值字 245
技巧49 获取其他程序窗口中文本框的内容 245
技巧50 实现防止将重复项添加到列表框中 247
技巧51 使用Dir函数显示文件列表 247
技巧52 统计List控件中被选中选项的个数 248
技巧53 利用数组设置MSFlexGrid的表头和列宽 249
第14章 数据库与数据处理技巧 250
技巧54 对MSHFlexGrid控件中选中的行进行操作 250
技巧55 在ADO控件属性页中采用相对路径连接Access数据库 250
技巧56 对Recordset对象中的记录进行排序 251
技巧57 更改子节点的父节点 251
技巧58 快速选定满足指定条件的记录 252
技巧59 报表数据的动态生成 253
技巧60 避免Null产生的错误 253
技巧61 创建自动计算的字段 253
技巧62 关闭所有的数据连接 254
技巧63 设置SQL数据库的每周第一天 254
技巧64 使用Access对象将Access数据库转换为EXCEL 254
技巧65 使用隐式事务保证数据表管理的安全 255
技巧66 将EXCEL报表数据快速导入SQL SERVER数据库的方法 255
技巧67 使用MSChart图表控件对数据进行自动分组 256
技巧68 妙用Sql Server 2008中的INSERT INTO语句 256
技巧69 自动生成商品编号 256
技巧70 在VB中使用构型命令创建记录集关系 257
技巧71 如何判断某数据表是否存在 258
技巧72 在SQL SERVER中字符串转换为二进制 259
技巧73 打印Microsoft Access报表 259
技巧74 查询区分大小写 260
技巧75 记录查询时自动格式化日期格式 261
技巧76 利用Format函数转换字母大小写 262
技巧77 将数字格式化为指定位数 262
技巧78 将数字转换为带有分节符的数字 262
技巧79 单词首字母大写 263
技巧80 引号字符的赋值 263
技巧81 正则表达式在VB6中的应用 263
技巧82 自动计算算术式的值 264
技巧83 获得中英文混合字符串的字节长度 265
技巧84 将汉字转换为Unicode字符代码 265
技巧85 判断月份最后一天 265
技巧86 将小数保留两位 266
技巧87 十六进制数转换为十进制数 266
技巧88 判断某月拥有多少天 266
技巧89 创建多级目录 267
技巧90 判断是否是周末 268
第15章 网络与多媒体及其他技巧 269
技巧91 QQ通信窗口的调用 269
技巧92 获取WebBrowser控件句柄 269
技巧93 获取网页中JavaScript全局变量值 270
技巧94 VB中利用XMLHTTP下载远程文件 270
技巧95 使用.NET框架在Visual Basic 6中实现文件下载 271
技巧96 获取以及设置Cookie 272
技巧97 判断光驱是否有光盘 273
技巧98 屏幕抓图的简单方法 273
技巧99 识别系统播放音类型 274
技巧100 隐藏WindowsMediaPlayer1控制平台 274
技巧101 判断是否插入外存储器 275
技巧102 复制采用BarCodeCtrl控件生成的条形码图像的方法 275
技巧103 通过语音指令控制计算机 277
技巧104 应用程序中文验证码的生成 280
技巧105 全屏播放AVI视频 282
技巧106 直接播放EXE文件中的声音文件 283
技巧107 用API函数控制光驱的开关 284
技巧108 播放透明背景的Flash动画 285
技巧109 使用Label控件的Caption属性实现文本框焦点热键 285
技巧110 采用缩略图进行地图快速定位 286
技巧111 Command函数的妙用 289
技巧112 在VB中通过相对路径引用标准DLL 289
技巧113 使用文件的默认方式打开文件 290
技巧114 使用API实现OCX注册 290
技巧115 建立快捷方式 291
技巧116 线程的连接 292
技巧117 选择执行具有特定标识的程序 293
技巧118 使用PropertyBay实现控件属性的外部保存 293
技巧119 确认VB IDE是否运行 295
技巧120 用Shell语句调出控制面板 295
技巧121 利用“OLE自动操作”实现单词纠错 296
技巧122 外部程序的异步调用 297
技巧123 将图像粘贴到RichTextBox中 298
技巧124 Word文档转换RTF格式 299
技巧125 长文件名转换为短文件名 299
技巧126 利用timeGetTime函数更精准地计算时间差 300
技巧127 获取自定义过程地址 300
技巧128 获取分区卷标简单方法 301
技巧129 利用Objptr函数快速查找集合中的对象 301
技巧130 利用Objptr函数判断对象变量是否指向同一对象 302
技巧131 利用CallByName函数调用对象方法 302
技巧132 利用CallByName函数设置对象属性 303
技巧133 利用CallByName函数获取对象属性 303
技巧134 VB6中使用接口实现多态 303
技巧135 使用WMI技术获取磁盘信息 304
技巧136 对象命名惊叹号“!”与圆点“.” 310
技巧137 快速查找属性 310
技巧138 利用指针合并数组 311
技巧139 用ParamArray接收任意个参数 311
技巧140 Visual Basic内嵌汇编语言 312
技巧141 字节数组与字符串的相互转换 314
技巧142 在Visual Basic中实现栈 314
第5篇 算法和效率篇——程序员的得力助手
第16章 算法与执行效率 318
算法01 顺序查找 318
算法02 二分查找 319
算法03 分块查找 323
算法04 哈希查找 324
算法05 直接插入排序 327
算法06 希尔排序 330
算法07 起泡排序 332
算法08 快速排序 334
算法09 选择排序 337
算法10 归并排序 339
第17章 定理与猜想 341
算法11 斐波那契数列 341
算法12 角谷猜想 342
算法13 歌德巴赫猜想 343
算法14 四方定理 344
算法15 尼科彻斯定理 345
第18章 逻辑推理与生活中的数学 347
算法16 魔术师的秘密 347
算法17 婚礼上的谎言 348
算法18 谁讲了真话 349
算法19 黑纸与白纸 349
算法20 巧分苹果 351
算法21 卖西瓜 352
算法22 打渔晒网问题 352
算法23 水池注水问题 354
算法24 分鱼问题 354
算法25 递归解分鱼问题 355
算法26 求车运行速度 356
算法27 一圈人逢三退一 357
第6篇 解决方案篇——前人的经验精髓
第19章 用户界面设计方案 360
方案01 主界面设计方案 360
方案02 用户操作界面设计方案 384
方案03 信息提示界面设计方案 401
方案04 界面美化方案 407
第20章 查询方案 418
方案05 拼音简码查询 418
方案06 模块化查询 421
方案07 利用视图进行查询 427
方案08 利用存储过程进行查询 429
方案09 向导式查询方案 433
方案10 忽略繁简体差异的中文查询 441
第21章 安全策略方案 444
方案11 软件注册方案 444
方案12 用户登录方案 448
方案13 密码验证方案 452
方案14 用户权限方案 456
方案15 提高数据库安全方案 469
第22章 报表设计方案 475
方案16 VB自带报表设计器 475
方案17 Printer对象报表打印方案 494
方案18 水晶报表设计方案 512