标题：Visual Basic编程之道
图书信息
书名：《Visual Basic编程之道》 
出版社：人民邮电出版社 
ISBN：978-7-115-24359-1 
出版时间：2011-03-01  
作者：明日科技 安剑 巩建华 
定价：69元RMB 
  
内容简介
本书是一本帮助程序员提高编程素养的图书，书中结合开发人员多年的编程经验和感悟，介绍了程序开发中必知必会的关键细节、不可忽略的技术陷阱、常见的谬误以及经典的应用实例。全书分为6篇，共22章，全面介绍了Visual Basic程序开发中的各种陷阱与谬误、技术细节与经验技巧、常用的算法以及解决方案。其涉及的技术主要包括面向对象编程、网络编程技术、图形图像多媒体和数据库应用等知识。
本书附带有配套DVD光盘，光盘中提供有书中全部实例和项目的源代码，这些源代码全部经过精心调试，保证能够在Windows XP、Windows Server 2003及Windows 7操作系统下编译和运行。
本书非常适合Visual Basic初学者、编程爱好者，同时也可以作为大中专院校老师和学生的学习参考用书。
图书目录
第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