Tree Control 中GetItemData()总是返回0
我再一个函数中建立一个tree
m_tree.DeleteAllItems();
CString title;
title.Format(_T("%s"),CStringW("Video"));
HTREEITEM htitle;
htitle=m_tree.InsertItem(title,0,0,TVI_ROOT);
CString cvideo_id;
HTREEITEM hvideo;
for(vector<string>::size_type ix=0;ix!=sort_video_result.size();++ix)
{
string video_id=sort_video_result[ix];
//将string转化为CString
cvideo_id.Format(_T("%s"),CStringW(video_id.c_str()));
hvideo=m_tree.InsertItem(cvideo_id,0,0,htitle);
m_tree.SetItemData(hvideo,(DWORD)2); //作为试验,就先赋值2 DWORD m;
m=m_tree.GetItemData(hvideo); //立即查看,发现结果正确,m=2 cvideo_id.ReleaseBuffer(0);
}
另外在OnSelchangingVideoId(NMHDR *pNMHDR, LRESULT *pResult)查看,发现
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
HTREEITEM SelItem;
SelItem=m_tree.GetSelectedItem();
if(SelItem!=NULL)
{
DWORD m;
m=m_tree.GetItemData(SelItem); //发现m总是为0 *pResult = 0;
}
else
return;
请问是怎么回事?