MFC 有内置的网格控件吗?

Posted

技术标签:

【中文标题】MFC 有内置的网格控件吗?【英文标题】:Does MFC have a built in grid control? 【发布时间】:2009-10-27 10:33:54 【问题描述】:

首先我想要的是:能够显示具有多列的网格,每个单元格都有一个自定义渲染回调。因此,您可以使用这样的控件在游戏中显示您的库存,或者在 Google Chrome 中显示您访问的热门页面的网格。

我一直在玩CListCtrl,虽然我可以在每个项目上获得自定义渲染能力,但我无法让它与列一起使用——比如每行 3 个项目。该控件具有与列相关的方法,但我认为这些方法专门用于内置功能,其中项目的不同属性会自动显示在每列中......而不是提供通用网格控件。

那么,MFC 中是否存在这样的功能?如果不是,那么我想知道最简单的方法是否让我实际将每一行作为一个项目插入......然后自定义渲染绘制行中的多个单元格,我还可以进行自定义 UI 以支持单击单元格.

但我真正想要的是能够创建一个自定义控件,并将其作为一个项目添加到列表中 - 例如在 Flex 中 - 以便自动处理 I/O 等。

欢迎任何建议/信息...

【问题讨论】:

【参考方案1】:

Dundas 已将其一些(优秀)组件投放到公共领域。他们的Ultimate Grid 可以在CodeProject 上找到。

【讨论】:

【参考方案2】:

我不知道内置控件,但我认为您应该看看this。 本文详细描述了功能齐全的 MFC 网格控件的功能,该控件源自 CWnd,用于显示表格数据。

【讨论】:

我遇到过那个控件;看起来它可能做了我们想要的,但将它纳入我们的项目可能会很困难。 我在商业应用程序中使用它。部署很容易。我们必须修复一些微妙的边缘情况错误。总体而言,这是一个很好的控制和完全可定制的 - 你有源代码。【参考方案3】:

YOUR_LIST_CONTROL.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_INFOTIP|LVS_EX_GRIDLINES);

我认为它会对你有所帮助 (SetExtendedStyle)。

【讨论】:

【参考方案4】:

我推荐这个: https://code.google.com/p/cgridlistctrlex/ 很完整

【讨论】:

以上是关于MFC 有内置的网格控件吗?的主要内容,如果未能解决你的问题,请参考以下文章

MFC 列表控件滚动显示额外的网格线

调整 MFC 网格控件的大小以适应对话框?

如何在 MFC 对话框中替换/更新 ActiveX 控件

是否可以使用 CListCtrl 编辑数据 - 如果没有,任何人都可以建议 MFC 中的替代控件吗?

winforms有没有任何好的和免费的devexpress数据网格替代品?

初步了解如何自己写一个网格控件