VBCCR控件库:完全替代微软通用控件的终极解决方案

概述

VBCCR(Common Controls Replacement)是由 Krool 开发的一个开源项目,旨在完全替代VB6中的微软通用控件(MS Common Controls)。这个项目最初发布于VBForums论坛,并持续更新至今,已成为VB6开发者最受欢迎的控件库之一。

下载

控件包和demo示例:

https://wwhs.lanzouo.com/iOVtg2y3ligf

原始仓库:Kr00l/VBCCR: VB Common Controls Replacement Library
https://github.com/Kr00l/VBCCR

项目背景

微软的通用控件(如MSCOMCTL.OCX、COMCTL32.OCX等)存在以下问题:

  • 依赖外部OCX文件,部署不便
  • 不支持Unicode
  • 不支持现代Windows主题
  • 功能陈旧,缺乏更新

VBCCR通过直接链接到comctl32.dll,完美解决了这些问题,同时提供了更多增强功能。

支持的控件列表

VBCCR可以完全替代以下微软控件:

  • MSCOMCTL.OCX/COMCTL32.OCX
  • MSCOMCT2.OCX/COMCT232.OCX
  • RICHTX32.OCX
  • COMDLG32.OCX
  • COMCT332.OCX
  • MCIWNDX.OCX (VB5自带)
  • SYSINFO.OCX

当前包含的具体控件有:

  • Animation (动画控件)
  • CheckBoxW (复选框)
  • ComboBoxW (组合框)
  • CommandButtonW (命令按钮)
  • CommandLink (命令链接)
  • CoolBar (酷栏)
  • CommonDialog (通用对话框)
  • DTPicker (日期时间选择器)
  • FontCombo (字体组合框)
  • FrameW (框架)
  • HotKey (热键)
  • ImageCombo (图像组合框)
  • ImageList (图像列表)
  • IPAddress (IP地址)
  • LabelW (标签)
  • LinkLabel (链接标签)
  • ListBoxW (列表框)
  • ListView (列表视图)
  • MCIWnd (媒体控制界面)
  • MonthView (月历视图)
  • OptionButtonW (选项按钮)
  • Pager (分页器)
  • ProgressBar (进度条)
  • RichTextBox (富文本框)
  • Slider (滑块)
  • SpinBox (微调框)
  • StatusBar (状态栏)
  • SysInfo (系统信息)
  • TabStrip (标签条)
  • TextBoxW (文本框)
  • ToolBar (工具栏)
  • TreeView (树形视图)
  • UpDown (上下控件)
  • VirtualCombo (虚拟组合框)
  • VListBox (虚拟列表框)
  • WindowedLabel (窗口化标签)

主要特性

1. Unicode支持

所有控件都完全支持Unicode,可以在任何语言环境下正常工作。

2. DPI感知

控件完全支持高DPI显示,在不同DPI设置下都能正确显示。

3. 64位兼容

控件已为64位环境做好准备,可以轻松迁移到64位应用程序。

4. 设计时依赖最小化

设计时(IDE)仅依赖一个文件(OLEGuids.tlb),编译后的EXE没有任何外部依赖。

5. 功能增强

相比原版控件,VBCCR增加了大量新属性和方法,如:

  • 富文本框的粘贴特殊对话框
  • 状态栏面板的图片右对齐选项
  • 工具栏按钮的弹出菜单支持
  • 文本框的提示文本功能
  • 列表视图的文件拖放支持
  • 等等

使用优势

  1. ​部署简单​​:编译后的EXE不依赖任何外部OCX,真正绿色免注册
  2. ​现代外观​​:支持Windows主题,界面更美观
  3. ​功能丰富​​:比原版控件提供更多功能
  4. ​性能优化​​:针对现代系统进行了大量性能优化
  5. ​持续更新​​:项目活跃,不断修复bug和增加新功能

安装与使用

  1. 下载最新版VBCCR
  2. 在VB6 IDE中打开CommonControlsEx.vbp
  3. 编译生成OCX或直接使用Std-EXE版本
  4. 在项目中引用编译后的控件

注意:

  • 更改”项目名称”时需确保所有窗体都已打开,否则属性会丢失
  • 使用SetParent或MoveWindow API时,传递.hWndUserControl而非.hWnd

版本历史

VBCCR自2012年首次发布以来,经历了大量更新和改进。最近的更新包括:

2025年6月:

  • ImageCombo控件的各种bug修复
  • FontCombo控件的内部改进
  • BuddyControl属性的安全检查优化

2025年5月:

  • 移除了CommandButtonW等控件的BS_NOTIFY样式
  • 改进了CommandButtonW的DroppedDown属性

2025年4月:

  • 改进了OLEGuids.tlb以更好地支持IntelliSense
  • 修复了LabelW控件的MousePointer属性

2025年3月:

  • 修复了FrameW控件的子框架问题
  • 添加了IOleInPlaceObjectWindowless接口

2025年1月:

  • 状态栏面板新增左右对齐选项
  • 列表视图组性能大幅提升

2024年:

  • 新增WindowedLabel控件
  • 添加了丰富的拖放功能
  • 改进了文本框和富文本框的Unicode处理

开发者资源

  • ​GitHub源码​​:可在GitHub上查看完整源代码
  • ​详细文档​​:感谢MountainMan提供的文档
  • ​示例程序​​:包含多个演示如何使用各种控件的示例
  • ​更新工具​​:方便的更新和编译工具

注意事项

  1. 标准EXE版本在IDE中可能不够安全,推荐使用OCX版本
  2. 某些高级功能需要特定Windows版本支持
  3. 迁移现有项目时需注意部分属性行为可能略有不同

结论

VBCCR控件库是VB6开发者不可或缺的工具,它不仅解决了微软通用控件的诸多限制,还提供了更现代、更强大的功能集。无论是开发新项目还是维护旧项目,VBCCR都能显著提升开发效率和用户体验。

对于仍在维护VB6应用程序的开发者来说,采用VBCCR控件库是使应用程序现代化、提高兼容性和用户体验的最佳途径。

发表回复