Visual Basic核心编程及通用模块开发

副标题:无

作   者:张宁编著

分类号:

ISBN:9787302283102

微信扫一扫,移动浏览光盘

简介

本书旨在面向VB软件开发的实践应用,给出了常用高级功能的实现技术、以及常见编程问题的解决方案;并将一些作者编写的、曾大量投入实际软件开发实践和多次改进过的、较成熟的模块作为实例与读者共享。帮助读者在VB环境下开发通用的、可重用的以及高效的代码模块,仅通过最简单的接口调用,就能实现很多高级功能或解决常见的开发难题,使读者不仅可以使用VB开发出功能更强大的软件,而且可以胜任更加快速的开发。

目录

第一篇 高级技术篇
第1章 万丈高楼平地起,一劳永逸 打地基——知识准备 2
1.1 使用Windows API函数 2
1.1.1 API函数的声明 2
1.1.2 使用API函数的注意事项 6
1.2 模块化编程 7
1.2.1 我能在一天之内做出一个软件吗 7
1.2.2 用标准模块还是类模块 7
1.2.3 怎样创建类模块 8
1.3 编程风格 12
1.3.1 变量在使用前一定要定义 12
1.3.2 尽量不要用Variant数据类型 12
1.3.3 代码的缩进和换行 13
1.3.4 避免重复用对象名称做一串调用 13
1.3.5 Boolean型条件表达式的写法 15
1.3.6 字符串为空串的判断 15
1.3.7 能用常量就不要用函数求值 15
1.3.8 数组下标从1开始 16
1.3.9 用Optional选项定义函数的参数 16
1.3.10 不能滥用Goto语句不代表不能用Goto语句 17
1.3.11 尽量少用ActiveX控件 17
1.4 条件编译 18
1.4.1 什么是条件编译 18
1.4.2 条件编译有什么用 18
1.5 获取资料 20
1.5.1 MSDN 20
1.5.2 借助Visual C++的头文件 22
1.5.3 其他资料 23

第2章 这个可以有——在VB中使用指针 24
2.1 在VB中使用指针变量 24
2.1.1 什么是指针 24
2.1.2 如何实现指针变量 24
2.2 VarPtr,StrPtr,ObjPtr函数和AddressOf运算符 25
2.2.1 内联类型和指针类型 25
2.2.2 VarPtr,StrPtr和ObjPtr函数 27
2.2.3 AddressOf运算符 27
2.3 CopyMemory函数 28
2.3.1 CopyMemory函数的声明和功能 28
2.3.2 CopyMemory函数用于内联类型的数据传递 28
2.3.3 CopyMemory函数用于字符串类型的数据传递 29
2.3.4 对象的弱引用 30
2.4 在VB中使用指针程序举例 32
2.4.1 使用指针实现不同类型数据的交换 32
2.4.2 使用指针实现不同窗体模块的数据交换 33
2.4.3 不使用数组类型的参数向函数传递数组 34
2.4.4 用一个Long型参数向函数传递任意类型任意大小的数据 35
2.5 部分字节运算的问题和解决办法 36
2.5.1 Or按位或运算 36
2.5.2 取长整数的高位和低位 40

第3章 不做数据的奴隶——常用数据结构 42
3.1 何谓数据结构 42
3.2 堆栈 43
3.2.1 什么是堆栈 43
3.2.2 堆栈的基本算法 44
3.2.3 堆栈的通用模块实现 44
3.2.4 堆栈通用模块的使用 51
3.3 哈希表 53
3.3.1 什么是哈希表 53
3.3.2 哈希表的基本算法 54
3.3.3 哈希表的通用模块实现 55
3.3.4 哈希表通用模块的使用 75
3.3.5 哈希表类模块与VB的Collection对象的效率比较 77
3.4 带“回收站”的数组 79
3.4.1 基本思想 79
3.4.2 程序实现 79

第4章 青出于蓝胜于蓝——子类技术 84
4.1 Windows窗口和消息驱动机制 84
4.1.1 窗口 84
4.1.2 窗口的消息驱动机制 85
4.1.3 消息的组织和发送 87
4.1.4 Visual Basic事件与消息 89
4.2 子类技术及其常规实现 89
4.2.1 子类技术简介 89
4.2.2 子类技术的常规实现 91
4.2.3 子类技术常规实现的问题 96
4.3 开发实现子类技术的通用模块 97
4.3.1 通用模块的目标 97
4.3.2 封装子类信息的类模块 98
4.3.3 实现子类技术的标准模块 106
4.3.4 子类技术通用模块小结 118
4.4 子类技术通用模块的用法举例 119
4.4.1 标准模块Module1的设计 120
4.4.2 窗体Form1的设计 121
4.4.3 程序的运行效果 122

第5章 想解雇ActiveX通用控件吗—— 使用API函数创建控件 124
5.1 控件的深入理解 124
5.1.1 ActiveX控件 124
5.1.2 dll通用控件库 125
5.1.3 控件的运行机制 128
5.1.4 简单实例——用API函数创建Animation控件 136
5.2 用API函数创建控件的模块划分 140
5.2.1 实现控件的类模块 140
5.2.2 支持的标准模块 143
5.2.3 其他“黑匣子”模块 144
5.2.4 模块划分小结 144
5.3 mdlAPIControlsSupport标准模块 145
5.3.1 公有常量定义 146
5.3.2 控件类型的枚举类型定义 147
5.3.3 管理已创建控件 149
5.3.4 子类处理的自定义窗口程序 151
5.3.5 标准模块的其他内容 156
5.4 clsControlBase基类模块 157
5.4.1 API函数声明和常量、类型定义 157
5.4.2 创建控件 159
5.4.3 实现控件的共有属性 161
5.4.4 实现控件的共有方法 176
5.4.5 类模块的Initialize和Terminate事件过程 181
5.5 实现跳格表控件的控件类模块clsAPITabs 182
5.5.1 API函数声明和常量、类型定义 183
5.5.2 继承的“变通”实现 184
5.5.3 创建跳格表控件 185
5.5.4 实现跳格表控件的属性 188
5.5.5 实现跳格表控件的方法 190
5.5.6 实现跳格表控件的事件 193
5.5.7 clsAPITabs控件类模块的应用实例 196
5.6 实现状态栏控件的控件类模块clsAPIStaBar 198
5.6.1 API函数声明和常量、类型定义 199
5.6.2 继承的“变通”实现 200
5.6.3 创建状态栏控件 200
5.6.4 状态栏分栏和分栏属性 202
5.6.5 状态栏的其他功能 210
5.6.6 实现状态栏的事件 211
5.6.7 clsAPIStaBar控件类模块的应用实例 212
5.7 实现丰富格式文本框控件的控件类模块clsAPIRichTextBox 215
5.7.1 RichTextBox控件加载和继承的“变通”实现 215
5.7.2 创建RichTextBox控件 216
5.7.3 管理文本和RTF代码 219
5.7.4 选择区域 227
5.7.5 文本的剪切、复制、粘贴 229
5.7.6 设置文本格式 229
5.7.7 实现RichTextBox的事件 232
5.7.8 实现RichTextBox的其他功能 233
5.7.9 clsAPIRichTextBox控件类模块的应用实例 234

第6章 路见不平一声吼,强大功能我也有 ——常见VB系统功能问题和解决 237
6.1 长字符串处理 237
6.1.1 VB系统中的字符串连接运算及问题 237
6.1.2 解决方案——clsLongString类模块 240
6.1.3 改进字符串连接效率测试 250
6.2 多种分行格式的纯文本文件的按行读取 251
6.2.1 VB按行读取文本文件的常规方法及问题 251
6.2.2 二进制读取文本文件 253
6.2.3 设计类模块支持多种分行格式 255
6.2.4 类模块的使用 274
6.3 部分字符串函数的增强 275
6.3.1 Split函数的增强 275
6.3.2 Trim函数的增强 281
6.3.3 判断Collection对象的键是否存在 283
6.4 解决控件不支持鼠标滚轮的问题 284
6.4.1 鼠标滚轮消息WM_MOUSEWHEEL 285
6.4.2 窗口滚动消息WM_HSCROLL和WM_VSCROLL 285
6.4.3 解决鼠标滚轮问题的通用模块 287
6.5 增强VB的滚动条控件 289
6.5.1 基本思路 290
6.5.2 实现技术 291
6.5.3 类模块的完整代码 297
6.5.4 增强滚动条通用模块使用举例 303

第7章 让你的程序在哪都不out——使程序支持多国语言版 308
7.1 多国语言支持的主要问题 308
7.2 字符串资源和资源加载 309
7.2.1 字符串资源 309
7.2.2 VB的资源编辑器 310
7.2.3 解决不同语言语法元素顺序问题 311
7.3 编写支持多国语言版程序的通用模块 313
7.3.1 公有函数 313
7.3.2 条件编译的全局元素 314
7.3.3 开发多国语言版的程序小结 316
7.4 支持多国语言版的程序实例 317
7.4.1 简单实例 317
7.4.2 改造clsReadLines类模块 319

第二篇 功能模块篇
第8章 程序骨感没人爱——Windows绘图和图形界面增强 324
8.1 GDI的基本原理 324
8.1.1 色彩和坐标 324
8.1.2 设备环境简介 327
8.1.3 GDI对象 330
8.2 高级文本描绘的类模块clsDrawText 335
8.2.1 DrawText函数 335
8.2.2 clsDrawText类模块的开发 338
8.2.3 clsDrawText使用的实例程序 349
8.3 绘制Windows图形元素 352
8.3.1 绘制蚀刻线 352
8.3.2 绘制3D效果的边框 354
8.3.3 绘制Windows按钮元素 356
8.3.4 绘制首尾移动样式的按钮 361
8.4 绘制透明位图 363
8.4.1 位图简介 364
8.4.2 光栅操作 366
8.4.3 绘制透明位图 367
8.4.4 程序实例 371
8.5 为静态图形添加图形热区 372
8.5.1 图形热区实现的基本思路 372
8.5.2 开发图形热区管理类模块clsGraphCoords 373
8.5.3 图形热区编程实例 381
8.6 改变窗体透明度 383
8.6.1 设置窗体透明度的API函数 384
8.6.2 编写类模块封装设置窗体透明度的API函数 384
8.6.3 程序实例 388
8.7 使控件具有Windows XP风格的外观 391
8.7.1 XP风格外观的控件探秘 391
8.7.2 使应用程序中的控件具有XP风格 393
8.7.3 程序实例 397

第9章 搞定这个怕什么?你懂我的—— 菜单高级控制和菜单选择助手 398
9.1 编写菜单控制标准模块mdlMenuFuncs 399
9.1.1 菜单的句柄 399
9.1.2 获取菜单项信息 402
9.1.3 设置菜单项信息 406
9.1.4 设置菜单项高亮状态 412
9.1.5 返回或设置子菜单默认项 412
9.1.6 获得菜单中的菜单项总数 413
9.1.7 系统菜单控制 414
9.2 菜单选择助手 415
9.2.1 基本思路 416
9.2.2 在mdlMenuFuncs中添加的完整代码 419
9.2.3 clsMenuSelAssist的完整代码 420
9.3 程序实例 423
9.3.1 菜单选择助手功能演示 423
9.3.2 标准模块mdlMenuFuncs部分功能演示 423

第10章 玩转注册表,换汤不换药——简化ini文件和注册表编程 426
10.1 ini文件和使用ini文件保存信息 426
10.1.1 ini文件的结构 426
10.1.2 ini文件读写的主要API函数 427
10.1.3 封装ini文件的读写操作 428
10.1.4 ini文件读写的实例程序 429
10.2 注册表结构简介 429
10.2.1 控制项 430
10.2.2 子项 432
10.2.3 键值 432
10.3 编写通用模块封装常用注册表读写操作 433
10.3.1 项的句柄和项的打开、关闭 433
10.3.2 固定子项位置 435
10.3.3 创建或删除子项 436
10.3.4 读取子项键值 438
10.3.5 设置子项键值 440
10.3.6 删除子项键值 442
10.3.7 读取注册表任意位置数据 443
10.3.8 设置文件关联 444
10.4 注册表编程实例 448
10.4.1 记忆窗体位置 448
10.4.2 在固定子项下读写数据 448
10.4.3 建立和删除文件关联 449

第11章 真的很给力——文件系统编程 451
11.1 文件系统操作 451
11.1.1 列文件目录 451
11.1.2 判断文件(夹)存在 457
11.1.3 文件名操作函数 461
11.1.4 创建文件夹 466
11.1.5 文件的复制、移动和删除 467
11.1.6 获得驱动器信息 470
11.1.7 获得临时文件 475
11.2 获得文件属性 477
11.2.1 文件名属性 477
11.2.2 文件大小和文件属性 478
11.2.3 文件时间属性 480
11.2.4 文件属性对话框 483
11.2.5 文件类型字符串和文件图标 484
11.3 打开/保存文件对话框的通用模块 491
11.3.1 打开/保存文件对话框的相关API函数 491
11.3.2 编写通用模块 494
11.3.3 通用模块使用实例 503
11.4 浏览文件夹对话框的通用模块 505
11.4.1 浏览文件夹对话框的相关API函数 505
11.4.2 编写通用模块 507
11.4.3 通用模块使用实例 509
11.5 制作自己的简易资源管理器 509

第12章 非“程”勿扰——其他常见系统功能 518
12.1 运行应用程序 518
12.1.1 运行程序或打开文档 518
12.1.2 运行程序并等待程序结束 522
12.1.3 程序实例 528
12.2 监视Windows剪贴板 530
12.2.1 剪贴板查看器和查看器链 530
12.2.2 使VB程序具有剪贴板监视功能的通用模块 532
12.2.3 剪贴板监视程序举例 536
12.3 设置系统热键 537
12.3.1 设置系统热键的有关知识 538
12.3.2 实现系统热键通用模块的完整代码 541
12.3.3 程序实例 548
12.4 添加系统托盘图标 550
12.4.1 相关API函数 550
12.4.2 实现系统托盘图标通用模块的完整代码 552
12.4.3 程序实例 557

第三篇 应用模块篇
第13章 我是勤奋的“猪”,我很乖——智能组合框 562
13.1 智能列表项维护 562
13.1.1 类模块对象与组合框控件的关联 562
13.1.2 不重复地添加列表项 563
13.1.3 列表项的保存和加载 565
13.2 实现按汉字拼音字头的中文自动输入 568
13.2.1 实现原理 568
13.2.2 获得汉字的拼音字头 570
13.2.3 查找拼音字头 572
13.2.4 实现按拼音字头自动输入 573
13.2.5 自动提示 575
13.3 智能组合框的其他功能 578
13.3.1 返回或设置下拉列表是否被拉下 578
13.3.2 设置下拉列表的高度 579
13.3.3 获取或设置下拉列表的最小宽度 579
13.4 智能组合框应用实例 580

第14章 “时”上编程——用API 函数实现定时器 583
14.1 用API函数创建定时器的通用模块 583
14.1.1 定时器简介 583
14.1.2 使用API函数创建定时器 584
14.1.3 定时器支持模块mdlTimerSupport 585
14.1.4 定时器类模块clsTimer 587
14.2 定时器通用模块应用实例 590
14.2.1 类模块内的定时器使用 590
14.2.2 标准模块内的定时器使用 591
14.3 通过定时器变通实现多线程 592

第15章 谁说这事不能说太细——进度指示 595
15.1 编写长时间运行程序需注意的主要问题 595
15.2 使程序在运行途中响应用户按下【取消】按钮 599
15.3 开发工作助手类模块clsOperAssistant 601
15.3.1 数据定义 601
15.3.2 更新进度指示 606
15.3.3 显示简短提示文本 610
15.3.4 响应用户中途取消 611
15.3.5 出错提示 613
15.3.6 程序开始和结束 613
15.3.7 清除方法Clear 615
15.3.8 类模块的Initialize和Terminate事件过程 616
15.4 工作助手类模块的应用实例 616
15.5 开发指示进度窗体 618
15.5.1 指示进度窗体的运行效果和调用 618
15.5.2 在工作助手类模块中添加驱动窗体的代码 619
15.5.3 开发frmWorkingAvi窗体 621

第16章 边界条约用户定——实现运行时控件的边框调整 629
16.1 解决边框调整问题的基本思路 629
16.1.1 通用模块的使用 629
16.1.2 Frame控件的作用 630
16.1.3 控件大小位置的重新调整 631
16.1.4 上下型和左右型风格 632
16.2 开发边框调整的通用模块 633
16.2.1 控件关联 633
16.2.2 有关的数据定义 635
16.2.3 重新安排控件大小和位置 642
16.2.4 处理分隔线拖动事件 644
16.2.5 类模块的Initialize和Terminate事件过程 648
16.3 边框调整通用模块应用实例 648

第17章 “泡泡”几时有,自己编程瞅—— 自己编程实现气泡提示框 653
17.1 制作气泡型窗体 653
17.1.1 制作气泡型窗体的基本思路 653
17.1.2 制作气泡型窗体实例 656
17.2 气泡提示框的通用模块 658
17.2.1 窗体的界面设计 659
17.2.2 气泡样式和图标类型的枚举类型 659
17.2.3 属性和常量定义 662
17.2.4 显示气泡提示 664
17.2.5 指向控件的气泡提示 676
17.2.6 气泡提示的关闭 677
17.2.7 窗体的加载和卸载 677
17.3 气泡提示框程序实例 678

第18章 乱“式”英雄——具有高级功能的表达式计算 680
18.1 表达式计算的算法简介 680
18.2 clsCacuExp类模块的数据定义 682
18.2.1 数据类型 682
18.2.2 表达式“解析”与表达式元素 684
18.2.3 表达式中的常量元素 686
18.2.4 表达式中的变量元素 687
18.2.5 运算符和函数的常量定义 690
18.2.6 表达式字符串属性 696
18.2.7 计算结果属性 697
18.2.8 错误信息属性 698
18.3 clsCacuExp类模块的功能代码 699
18.3.1 表达式解析 699
18.3.2 表达式计算 713
18.4 clsCacuExp类模块的使用实例 725
索引 727
参考文献 734

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Visual Basic核心编程及通用模块开发
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon