检索 CListCtrl 中的选定行
Retrieving the selected row in a CListCtrl
我有一个 CListCtrl
,其中有 2 列和多行。我想获取所选行的索引。当用户点击第一列时,我能够获取该行,但当点击第二列时,我无法获取该行。
有什么建议吗?
创建控件后调用m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);
——通常在OnInitDialog
.
比方说,我们有一个对话框,其中包含一个在 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();
我有一个 CListCtrl
,其中有 2 列和多行。我想获取所选行的索引。当用户点击第一列时,我能够获取该行,但当点击第二列时,我无法获取该行。
有什么建议吗?
创建控件后调用m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);
——通常在OnInitDialog
.
比方说,我们有一个对话框,其中包含一个在 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();