【发布时间】:2023-03-28 15:00:01
【问题描述】:
我有一个CListCtrl,其中有 2 列和多行。我想获取所选行的索引。当用户单击第一列时,我能够获取该行,但在单击第二列时无法获取。
有什么建议吗?
【问题讨论】:
我有一个CListCtrl,其中有 2 列和多行。我想获取所选行的索引。当用户单击第一列时,我能够获取该行,但在单击第二列时无法获取。
有什么建议吗?
【问题讨论】:
在创建控件后调用m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT); - 通常在OnInitDialog。
【讨论】:
假设我们有一个对话框,其中包含一个在 RC 文件中定义的 CListCtrl 对象,如下所示:
IDD_DIALOG 对话 0, 0, 435, 273 样式 DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION“一个对话框:)” FONT 12, "Microsoft Sans Serif", 400, 0, 0xEE 开始 控制“”,IDC_LIST_CONTROL,“SysListView32”,LVS_REPORT | LVS_OWNERDRAWFIXED | LVS_ALIGNLEFT | WS_BORDER,5,138,350,86 结尾然后 CListCtrl 对象 IDC_LIST_CONTROL 表现为 LVS_REPORT,这意味着 点击它的任何一列都会选择整行。
然后像这样检索选定的行:
int selectedRow = ((CListCtrl*)GetDlgItem(IDC_LIST_CONTROL))->GetSelectionMark();
【讨论】: