【问题标题】:Retrieving the selected row in a CListCtrl检索 CListCtrl 中的选定行
【发布时间】:2023-03-28 15:00:01
【问题描述】:

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

有什么建议吗?

【问题讨论】:

    标签: c++ clistctrl


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      假设我们有一个对话框,其中包含一个在 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();

      【讨论】:

        猜你喜欢
        • 2012-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-29
        相关资源
        最近更新 更多