MFC中listcontrol建立的表,怎样判断选中一行并作出响应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中listcontrol建立的表,怎样判断选中一行并作出响应相关的知识,希望对你有一定的参考价值。

调用CListCtrl类成员函数,GetSelectedCount和GetSelectionMark就可以了,根据返回值判断是否选中。也可以调用GetFirstSelectedItemPosition和GetNextSelectedItem,同样根据返回值判断是否选中。 参考技术A //ListCtrl控件增加NM_CLICK消息响应
int sel;
sel = m_list.GetNextItem(-1, LVIS_SELECTED);
if (sel < 0)

    MessageBoxW(_T("你未选中任何行"));
    return;

else

    ......//你的代码

在对话框窗口中使用 ListControl

【中文标题】在对话框窗口中使用 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。我想现在我很清楚该往哪个方向走。

以上是关于MFC中listcontrol建立的表,怎样判断选中一行并作出响应的主要内容,如果未能解决你的问题,请参考以下文章

MFC中怎样实现通过点击按钮而打开对话框选择文件,并将选择的txt文件内容导入到Listcontrol控件指定的列中。

MFC使用ListControl时,第一次左键点击ListControl的列表时无法触发NM_CLICK消息,点击第二次时才能触发

在对话框窗口中使用 ListControl

如何在 listcontrol mfc 中编辑单元格?

猎豹MFC--列表控件ListControl

MFC listcontrol导出excel表格