VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 772|回复: 5

GetFirstSelectedItemPosition()返回选中的行,怎么老是0呢?

[复制链接]

1

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-8 09:00:01 | 显示全部楼层 |阅读模式
void CStudentManageView::OnClickLISTBaseInfo(NMHDR* pNMHDR, LRESULT* pResult)
{
        //单击时,选中一行
        ::SendMessage(m_listBaseInfo.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);

        //显示选中行的学生成绩信息
    POSITION pos = m_listBaseInfo.GetFirstSelectedItemPosition();
        if(pos == NULL)
        {
                MessageBox("No Item is Selected");
        }
        else
        {
                while (pos)
                {
                         int   nItem   =   m_listBaseInfo.GetNextSelectedItem(pos);   
                }
        }

        int a = m_listBaseInfo.GetSelectionMark();
        *pResult = 0;
}


不管我单击哪行,都返回0x00000,也就是NULL,不知道是怎么回事?我是新手,谢谢
回复

使用道具 举报

0

主题

32

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-12-8 12:15:01 | 显示全部楼层
在这个函数第一行加一句试试:
void CStudentManageView::OnClickLISTBaseInfo(NMHDR* pNMHDR, LRESULT* pResult)
{
  m_listBaseInfo.SetFocus(); // 激活 list 控件
  // ...
回复

使用道具 举报

1

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
 楼主| 发表于 2020-12-8 12:30:02 | 显示全部楼层
还是不行啊
回复

使用道具 举报

0

主题

15

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
发表于 2020-12-8 13:45:01 | 显示全部楼层
或许你应该换个通告响应消息, 不是响应LVN_CLICK, 而是响应LVN_ITEMCHANGED通告试试, 另外pNMHDR可以被cast到与ListView控件相关的一个类型的, 里面可能有一个成员iItem, 如果不是-1,就应该是当前被点的行吧, 记不清了.
回复

使用道具 举报

0

主题

32

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-12-8 14:00:01 | 显示全部楼层
去掉下面这句
::SendMessage(m_listBaseInfo.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
这个工作应该在初始化的时候设置 m_listBaseInfo 的样式为 LVS_EX_FULLROWSELECT , 这样, 在你单击的时候, 就会自动选中一整行, 此时 GetFirstSelectedItemPosition(); 就有值了
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-8 18:00:01 | 显示全部楼层
楼主,我前几天也碰到这个问题了。后来才明白,直接引用用position 还有id即可,当你进入OnClickLISTBaseInfo的时候,position已经变成了你点的那个值。使用SelectedItemPosition()方法就会将position值给抹掉,就这么简单
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表