65.9K
CodeProject 正在变化。 阅读更多。
Home

终极 Grid 主页

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

5.00/5 (117投票s)

2007年8月24日

CPOL

10分钟阅读

viewsIcon

5081515

downloadIcon

82737

终极 Grid 现在是开源的。

引言

欢迎!

我们非常高兴地宣布,我们已决定将我们商业化的 MFC 库产品线,包括 Ultimate Toolbox、Ultimate Grid 和 Ultimate TCP/IP,免费提供给 CodeProject.com 社区。

这些是完整、齐全的库,包括源代码、文档、示例和例子。

Ultimate Toolbox、Ultimate Grid 和 Ultimate TCP/IP 附带完整的源代码,并且兼容 Microsoft Visual Studio 6.0 至 2005 版本。

Ultimate Toolbox 和相关 MFC 库产品系列已为专业 MFC 应用程序提供动力超过 10 年。我们认识到,有大量的用户仍在用 Visual C++ 和 MFC 编写新应用程序,并正在寻找有效且经过验证的库来增强他们的应用程序,同时也有许多用户需要维护和更新遗留代码。

通过将这些长期存在的 MFC 库发布给 CodeProject.com 社区,我们希望这些库能够继续发展、演变,并通过 The Code Project 及其成员的赞助,为开发社区提供一个有用的控件库。

目录

Ultimate Grid 功能

极致定制

Ultimate Grid 2005 在设计时就考虑了灵活性,并提供了一个框架,允许您随时替换 Grid 的许多组件。Ultimate Grid 2005 的定制尽可能简单。我们知道每个应用程序都需要不同的功能,我们的用户经常定制(或开发新)用于用户交互的类(例如 单元格类型编辑控件数据访问 类)。

Ultimate Grid 配置灵活性的部分示例

单元格边框

焦点矩形

多选样式

XP 主题

Excel 风格

滚动

滚动功能对所有网格组件都至关重要,在这里您会注意到 Ultimate Grid 的优越性。我们可以每秒滚动数千行,也可以只滚动一两行。您还可以通过编程方式将 Ultimate Grid 的视图滚动到特定单元格。

性能

除了 Ultimate Grid 优化的滚动性能外,Ultimate Grid 的设计还允许您非常有效地更改网格的数据和显示,使其能够与实时数据良好地协同工作。

数据源和单元格类型

Ultimate Grid 通过使用 数据源单元格类型 类来分离数据及其视觉表示。这允许您以不同的形式轻松表示相同的数据。Ultimate Grid 附带了许多预构建的数据源(ADO、DAO、ODBC 等),可让您轻松连接到数据库。该软件还附带各种单元格类型(下拉列表控件、微调按钮、复选框等),可让您轻松自定义用户与数据的交互体验。如果我们的任何类不符合您的需求,创建您需要的部件也非常简单。


单元格类型...


...更多单元格类型

编辑

Ultimate Grid 的设计不仅允许您编辑网格中的任何单元格(当然,您可以控制哪些单元格可以编辑,哪些不能,通过使用只读标志或重写虚拟函数),而且还允许您使用不同的 编辑控件 编辑每个单元格(即:数字编辑控件、掩码编辑控件、自定义编辑控件等)。

上下文敏感帮助

如果您的应用程序正在使用上下文敏感帮助,并且用户按下 F1(或其他任何上下文敏感帮助激活方式),那么 Ultimate Grid 将提供通知,指定用户正在请求帮助的单元格。此时,您只需要返回相关的帮助 ID,网格就会处理其余的事情。

拖放和复制粘贴功能

Ultimate Grid 允许通过拖放和复制粘贴功能与其他网格或应用程序共享其数据。

体积小

Ultimate Grid 2005 最令人兴奋的特性之一是其出奇小的体积。它消耗的内存非常少(例如,低至 100k),考虑到它拥有的功能数量,这非常出色。

文章

这里有一些入门文章 - 这些文章涉及使用 Ultimate Grid 进行项目的一些主要关注点。更多信息可以从编译的 HTML 文档中的类参考以及示例和演示源代码中获取。

入门指南 《Ultimate Grid 入门指南》,旨在快速概述在最常见场景下使用网格。
编辑 编辑网格中的单元格内容,涵盖基本的编辑调用和通知,以及高级编辑选项的介绍。
单元格类型 解释了单元格类型的使用方式,列出了“开箱即用”的可用单元格类型,并简要介绍了创建自定义单元格类型以在网格中使用。
DataSources 解释了数据源概念的基础知识,列出了可用的预构建数据源,并介绍了提供您自己的 CUGDataSource 类以在网格中使用。
常见问题解答 Ultimate Grid 用户提交的常见问题解答。

配置

布局

我们将 Ultimate Grid 的组件拆分到单独的 ZIP 文件中,以便于更新。

一般来说,对于像 Ultimate Grid 这样的代码库,安装文件是一个繁琐的麻烦。虽然它们允许您接受许可协议,并且是商业产品所期望的,但为了我们的目的,为了适应对核心源文件或示例的少量更新而更新整个安装程序将是太麻烦了。

示例和库项目都引用相对于源文件和包含文件的路径,并且如果将 .zip 文件解压到公共目录,它们应该能够“开箱即用” - 您的安装应该看起来大致如此

注意 - 我们将 DataSources 目录与 Samples zip 一起打包 - 该目录包含随网格一起提供的每个自定义 数据源(ADO、ODBC 等)的源代码,以及相关的示例。

入门

入门 Ultimate Grid 非常简单,只需将几个文件添加到您的 MFC 项目并填写一些初始设置信息即可。您可以在线查看 入门指南,也可以查看 CHM 格式文档下载中的教程。

我们还添加了在线文章,讨论 编辑单元格类型 以及在 Ultimate Grid 中使用自定义 数据源

社区支持

产品的支持将基于社区,并将包括产品核心开发者、产品的长期和知情用户以及 CodeProject.com 社区的其他成员的参与。

许可

我们的意图是让您能够以您希望的任何方式使用这些库,然而,有关许可权、责任限制和其他细节的具体信息包含在此处以及下载包中包含的 license.txt 文件中。

历史

Ultimate Grid 7.3

  • 将 UG 的所有现有更新合并到一个新的官方版本中
  • 添加 VC2008、VC2010 和 VC2012 项目和解决方案

2007 年 8 月 - **Ultimate Grid 7.2** 成为 CodeProject 的初始版本。

Ultimate Grid 7.2

  • XML 类的更新(由用户 kvt 提供)
  • 添加了 AllExamples 和 AllDemos 项目。
  • 对现有的 CUGDatasource 类进行了各种修复,以支持 Unicode 和 VS2005

Ultimate Grid 7.0/7.1

  • 完全支持 VC++ 2005 编译(0 警告)
  • 支持 XP 主题
  • 下拉网格单元格类型
  • 一个强大的新网格单元格类型,允许您向网格添加主从详细信息功能
  • XML 导入/导出功能 - 使用 XML 定义网格布局、默认设置和数据
  • 自动调整列宽单元格类型 - 自动增加行高以显示完整文本字符串
  • 改进的 ADO 数据源 - 进行了排序和其他改进
  • Excel XP 外观 - 将 Ultimate Grid 2005 配置为具有类似 Office XP 的外观
  • 向后兼容 Ultimate Grid 97 和 Ultimate Grid 6.1。因此您无需担心任何升级问题。
  • 添加了常见的 MFC 客户建议 - 我们听取了使用旧版本的开发者的意见,并采纳了你们的建议。
  • 增强的数字支持

Ultimate Grid 6.0

单元格类型

  • 新的下拉网格单元格类型,提供在一个弹出窗口中显示另一个 Ultimate Grid 的功能
  • 新的自动调整大小单元格类型,提供单元格调整其列和行大小以完整显示文本的功能。
  • 所有单元格类型都已改进,以尊重 ReadOnly 标志
  • 所有单元格类型都已改进,以与 BestFit 函数正常工作
  • 现在,下拉列表单元格类型在通过键盘打开时将正确显示
  • 多字体单元格类型在选择居中或右对齐时现在将正确绘制。
  • 添加了一个 CUGCellType::DrawBackground 虚拟函数。此函数负责绘制单元格的背景区域。所有标准单元格类型都已修改,以在需要时使用此函数。
    • 默认情况下,DrawBackground 函数使用 FillRect (带画笔)函数填充指定的矩形。此更改为网格提供了更好的 256 色环境支持。
  • CUGCellType::GetBestSize 虚拟函数现在将使用一个 size 参数调用,该参数初始化为当前单元格的高度和宽度。
    • 此信息用于具有位图的单元格,以正确计算位图图像的宽度。
  • CUGCellType::DrawText 现在将取消选择已选择的字体对象。

数据源

  • 添加了新的 XML 解析器类,以提供加载和保存 XML 文档的功能。支持的 XML 格式与 MS Excel XP 使用的 XML 文件兼容。
  • CUGDataSource 中添加了一个 IsOpen 虚拟函数
  • 改进了 ADO 数据源
    • 实现了排序功能
    • 实现了 IsOpen 函数来检查连接当前是否打开

CUGCell

  • 数字现在被存储为数字
    • 为了显示目的,数字使用客户端本地设置进行格式化
    • 编辑期间,数字值将显示为无格式
    • 可以通过 UGCELL_DONOT_LOCALIZE 单元格属性标志禁用数字格式。通过 CUGCell::SetPropertyFlags 设置。

CUGCtrl

  • BestFit 函数现在将发送 CUGCellType::OnChangedCellWidthCUGCtrl::OnColSized 通知
  • OnSheetSetup 现在将允许用户正确设置所有工作表,包括侧标题宽度。
  • CUGCtrl::AdjustComponentSizes CUGCtrl::Moved 在 paint 模式禁用时不会重绘网格。AdjustComponentSizes 将执行所有大小计算,但不会重绘任何网格组件。
  • CUGCtrl::OnPaintSetPaintMode (TRUE) 将调用 AdjustComponentSizes 而不是 RedrawAll
  • CUGCtrl::OnPaint 不会预先用按钮面色填充整个网格视图区域,现在此函数只会绘制未被滚动条或任何其他网格组件覆盖的右下角区域。
  • 添加了新的通知 CUGCtrl::OnSelectionChanged,由 multiselect 类调用,以告知用户选择已更改。
  • 添加了一个 CUGCtrl::EnableScrollOnParialCells 函数,该函数控制网格在用户鼠标拖动到部分可见单元格(网格区域的底部或右侧)时的行为,默认情况下,我们将此区域视为网格外部,并使用当前弹道设置进行滚动。此标志的好处是,现在可以阻止网格在该(灰色)区域上鼠标悬停时执行任何操作。
  • CUGCtrl::BestFitCUGCtrl::FitToWindow 函数现在是虚拟的
  • 添加了 CUGCtrl::AddFontIndirect 函数,允许用户通过传递 LOGFONT 对象将 CFont 对象添加到网格的字体列表中。
  • CUGCtrl::OnKillFocus 现在将提供指向新窗口的指针以及失去焦点的部分。

CUGGrid

  • 添加了 TempDisableFocusRect PaintDrawHintsNow 函数,以实现更快的重绘
  • CUGGrid::OnPaint 确定应该更新哪些单元格(如果矩形已失效),并且只重绘必需的单元格以及当前单元格。

CUGTab

  • 添加了一个 CUGTab::GetTabLabel 函数,允许检索选项卡标签字符串

杂项

  • 现在标题单元格上的工具提示将起作用
  • m_paintMode 标志现在在创建网格时设置为 FALSE ,这将防止在网格创建/设置完成之前进行重绘。
  • 多选类现在将正确报告组的数量。
  • 当用户选择一个单元格块(拖动或 SHIFT+单击)并单击最后一个选定的单元格时,多选现在将清除。
  • UG_ENABLE_PRINTING 未定义时,Ultimate Grid 现在将正确编译
© . All rights reserved.