代码改变世界

listctrl得到某行某列的值

2012-11-02 10:40  龙成  阅读(2353)  评论(0编辑  收藏  举报

先添加消息响应,然后添加如下代码,获得列值

 1 void C界面测试Dlg::OnNMRClickList1(NMHDR *pNMHDR, LRESULT *pResult)
 2 {
 3     LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
 4     m_line = pNMLV->iSubItem;
 5     // TODO: 在此添加控件通知处理程序代码
 6     *pResult = 0;
 7     CMenu menu ,* pSubMenu; //定义下面要用到的cmenu对象
 8     menu.LoadMenu(IDR_MENU1); //装载自定义的右键菜单
 9 
10     //获取第一个弹出菜单,所以第一个菜单必须有子菜单
11     pSubMenu = menu.GetSubMenu(0); 
12 
13     CPoint oPoint; //定义一个用于确定光标位置的位置
14     GetCursorPos( &oPoint); //获取当前光标的位置,以便使得菜单可以跟随光标
15 
16 
17 
18     //在指定位置显示弹出菜单
19     pSubMenu->TrackPopupMenu (TPM_LEFTALIGN, oPoint.x, oPoint.y, this); //第四个为传递的参数
20 //    MessageBox(_T("123"));
21 }

获取行值

1 index = m_listctrl.GetSelectionMark();

得到结果

1     MessageBox(m_listctrl.GetItemText(index,m_line));