检索CListCtrl中的选定行

时间:2017-01-31 08:19:13

标签: c++ clistctrl

我有CListCtrl,其中有2列和多行。我想获取所选行的索引。我可以在用户点击第一列时获取该行,但在第二列上单击时无法获取该行。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

创建控件后调用m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT); - 通常在OnInitDialog

答案 1 :(得分:0)

比方说,我们有一个对话框,其中在RC文件中定义了一个CListCtrl对象,如下所示:

IDD_DIALOG DIALOGEX 0, 0, 435, 273
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "A Dialog :)"
FONT 12, "Microsoft Sans Serif", 400, 0, 0xEE
BEGIN
    CONTROL         "",IDC_LIST_CONTROL,"SysListView32",LVS_REPORT | LVS_OWNERDRAWFIXED | LVS_ALIGNLEFT | WS_BORDER,5,138,350,86
END

然后CListCtrl对象IDC_LIST_CONTROL的行为就像LVS_REPORT,这意味着 单击其任意列将选择整行。

然后按以下方式检索所选行:

int selectedRow =(((CListCtrl *)GetDlgItem(IDC_LIST_CONTROL))-> GetSelectionMark();