VC++、MFC开发中如何通过鼠标点击控制列表选择一行

Posted

技术标签:

【中文标题】VC++、MFC开发中如何通过鼠标点击控制列表选择一行【英文标题】:How to select a row by a mouse click on Control List in VC++, MFC development 【发布时间】:2016-07-16 13:53:34 【问题描述】:

我正在尝试使用带有 报告视图控制列表 在基于对话框的应用程序上存储文件列表,如下所示: 我在控制列表上有两列。 我使用的控制列表是单选 - 真 我的问题是如何通过鼠标单击选择行。

【问题讨论】:

您需要区分列还是只希望点击响应在整行上可用?对于第二种情况,您可以使用以下命令将其扩展样式定义为全行选择:SetExtendedStyle(GetExtendedStyle() | LVS_EX_FULLROWSELECT); 你能再具体一点吗?您发布的那个链接提供了一个与 CListCtrl 交互的类。我不确定你的问题是什么。 您已经声明了CMyListCtrol m_ListCtrl 并且您想在对话框资源中与ListView 控件链接?覆盖DoDataExchange,添加DDX_Control(pDX, IDC_LIST1, m_ListCtrl) - see example。通常你不需要监控鼠标点击。有一些方法可用于监视选择更改、激活、拖放等。 @BarmakShemirani,谢谢,我会尝试看看如何将消息添加到现有的控制列表中,但我仍然想知道如何使用构建为 MFC 类 DLL 的类。 没关系。看来你已经可以使用CListCtrl 方法了,所以你肯定在某处添加了子类,你可能不需要DDX_Control 【参考方案1】:

如果您只想让点击响应在整行可用,您可以使用以下命令将其扩展样式定义为全行选择:

SetExtendedStyle(GetExtendedStyle() | LVS_EX_FULLROWSELECT);

【讨论】:

以上是关于VC++、MFC开发中如何通过鼠标点击控制列表选择一行的主要内容,如果未能解决你的问题,请参考以下文章

VC++/MFC中用PostMessage发送鼠标点击事件

VC++/MFC中用PostMessage发送鼠标点击事件

MFC 对话框 位图按钮 失去焦点

如何创建MFC文件,编写贪食蛇小游戏

VC 鼠标滚轮事件控制绘图的问题

mfc取消打印队列