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开发中如何通过鼠标点击控制列表选择一行的主要内容,如果未能解决你的问题,请参考以下文章