在对话框窗口中使用 ListControl

Posted

技术标签:

【中文标题】在对话框窗口中使用 ListControl【英文标题】:Using ListControl in a Dialog window 【发布时间】:2016-02-05 14:00:50 【问题描述】:

可以在非 MFC 项目的对话框中使用 ListControl 吗?我正在使用 Visual c++ 2010。

到目前为止我看到的例子都是使用 MFC,所以在我看来 ListControl 是 MFC 的一部分。我正在处理的代码不是基于 MFC 的,但是,Visual Studio 仍然允许在资源视图的对话框中添加 ListControl,并为 List Control 生成 rc 代码。所以我的猜测是我应该能够使用它。但是,我无法使用在线找到的标准方法将变量添加到 ListControl 并使用它。

在这种情况下如何使用 ListControl?例如添加一列或向单元格写入内容?一些代码示例肯定会有所帮助。

【问题讨论】:

【参考方案1】:

CListCtrl class 是一个 MFC 类。它只能在 MFC 项目中使用。

但是,CListCtrl 只是 ListView common control 的一个包装器,ListView 控件可以在任何 Windows 应用程序中使用——不需要 MFC。

Visual C++ 中包含的资源编辑器(令人困惑)将 ListView 控件称为“列表控件”。您可以在对话框中插入一个,它所要做的就是插入一个 ListView 控件。

如果您使用的是 MFC,您可以选择创建一个与该控件对应的成员变量。该成员变量的类型将是CListCtrl,因为它封装了对对话框上 ListView 控件的访问。

如果您不使用 MFC,您仍然可以使用 ListView 控件,您只需使用标准 SDK 机制来访问和操作它。例如,要将项目插入对话框的 ListView 控件中,您将获取控件的窗口句柄 (GetDlgCtrlID) 并向其发送LVM_INSERTITEM 消息。 SDK 文档包含sample code listings,但它们是一种相当糟糕的学习方式。最好的旧 Windows SDK 编程资源仍然是 Charles Petzold 的 Programming Windows。

【讨论】:

非常感谢您的解释。我不会使用 MFC。我想现在我很清楚该往哪个方向走。

以上是关于在对话框窗口中使用 ListControl的主要内容,如果未能解决你的问题,请参考以下文章

使用 MVVM 和视图模型通信的 WPF 窗口模式对话框

如何在对话框窗口Qt C++中启动主窗口[重复]

Flutter - 在对话框窗口中更改 CircularProgressIndicator 的大小

如何在SVG中使用对话框

如何在 WPF 中制作模态对话框?

VBA IE 在对话框窗口中批准下载