使用List Control时,如何把选中的Item的LV_ITEM结构取出来?大虾帮忙,谢谢!!!
同上,谢谢!!! 问题点数:20、回复次数:7Top
1 楼andy_lau(天行键,君子当自强不息!)回复于 2003-01-09 16:24:42 得分 2
getitem()Top
2 楼LinHanLao(凌寒)回复于 2003-01-09 16:42:21 得分 2
LVITEM *pItem;
m_ListCtrl.GetItem(pItem);
Top
3 楼zhhzxl(不懂装懂)回复于 2003-01-09 16:42:54 得分 0
我想使得鼠标点中时触发消息,这个消息既能判断哪个Item被选中了,
并能把选中的Item的LV_ITEM结构取出来。
能详细描述一下实现的方法吗?本人不甚感激!!!Top
4 楼LinHanLao(凌寒)回复于 2003-01-09 16:44:05 得分 2
BOOL ListView_GetItem(HWND hwnd, LPLVITEM pitem); Top
5 楼LinHanLao(凌寒)回复于 2003-01-09 16:49:29 得分 9
void CDialogDlg::OnDblclkListctrl(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMITEMACTIVATE temp = (LPNMITEMACTIVATE)pNMHDR;
int iItem = 0, iSubItem = 0;
char text[10] = "\0";
CRect rect, ListRect, itemRect;
iItem = temp->iItem;
iSubItem = temp->iSubItem;
if(iItem == -1 || iSubItem == 0 || iSubItem == -1)
return;
m_ListCtrl.GetItemText(iItem, iSubItem, text, sizeof(text));
m_ListCtrl.SetItemState(iItem, LVIS_FOCUSED, LVIS_FOCUSED);
m_ListCtrl.GetSubItemRect(iItem, iSubItem, LVIR_LABEL, rect);
m_ListCtrl.GetWindowRect(&ListRect);
ScreenToClient(&ListRect);
rect.left += ListRect.left;
rect.right += ListRect.left;
rect.top += ListRect.top;
rect.bottom += ListRect.top;
m_ListCtrl.GetItemRect(iItem, &itemRect, LVIR_BOUNDS);
m_EditBox.MoveWindow(&rect, TRUE);
m_EditBox.ShowWindow(SW_NORMAL);
m_EditBox.SetFocus();
*pResult = 0;
}Top
6 楼zhhzxl(不懂装懂)回复于 2003-01-09 17:04:26 得分 0
多谢!!!Top
7 楼xyw2278(启明星)回复于 2003-01-09 17:10:26 得分 5
使用消息LBN_SELCHANGE
在消息映射函数里使用
即可得到你所要的字符串str
CString str;
m_list.GetText(m_list.GetCurSel(),str);Top




