如何实现ListCtrl之间的Item拖动。我发现我每次GetItem()只能得到一个SubItem的数据

Zhang_ZP 2008-06-16 03:47:31
难道没有一次解决的办法么?
...全文
98 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
na_he 2008-06-16
  • 打赏
  • 举报
回复
对呀,需要做托的动作了,IDropTarget从这个继承,为自己的listctrl写借口了,呵呵.
my_girlf 2008-06-16
  • 打赏
  • 举报
回复
不好意思,会错意了

ListCtrl之间的Item拖动。我发现我每次GetItem()只能得到一个SubItem的数据
-------------------------------------------------------------------
你的题意我还是不能很清楚的了解,drag?drop? 获取子项,像2楼说的,用CString GetItemText( int nItem, int nSubItem )
http://www.codeproject.com/listctrl/dragtest.asp
http://www.codeproject.com/listctrl/filedroplistctrl.asp
Zhang_ZP 2008-06-16
  • 打赏
  • 举报
回复
恩,还是写FOR循环得了。这帖子留这里,明天结贴。
Zhang_ZP 2008-06-16
  • 打赏
  • 举报
回复
1楼的确定是在回答我的帖子?
菜牛 2008-06-16
  • 打赏
  • 举报
回复
不能一次获得所有子项,因为项目数不是固定的。自己逐个获取吧,GetItemText/GetItemData/GetItem。
my_girlf 2008-06-16
  • 打赏
  • 举报
回复
首先控件的属性里不要勾上单选(Single Selection)


CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_YOURLISTCONTROL);
ASSERT(pListCtrl != NULL);

POSITION pos = pList->GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!\n");
else
{
while (pos)
{
int nItem = pList->GetNextSelectedItem(pos);
TRACE1("Item %d was selected!\n", nItem);
// you could do your own processing on nItem here
}
}

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧