有tree和list,我想在list中点一文件,得到相关信息。
char * szSrc = new char[MAX_PATH];
int nItem = m_wndList.GetNextSelectedItem(pos);
LPLISTPARAM pliItem = (LPLISTPARAM) m_wndList.GetItemData(nItem); ZeroMemory(szSrc,MAX_PATH);
SHGetPathFromIDList(pliItem->lpidl,szSrc);
程序运行到LPLISTPARAM pliItem = (LPLISTPARAM) m_wndList.GetItemData(nItem);
就出错,跟踪了一下,pliItem 没有值。
LPLISTPARAM pliItem 我是在他的头文件中定义
typedef struct tagLISTPARAM
{
LPSHELLFOLDER lpsf;
LPITEMIDLIST lpidl;
UINT uType;
TCHAR szName[128];
}LISTPARAM, *LPLISTPARAM;
是我定义的不对吗?为什么取不到我想要的数据?
char * szSrc = new char[MAX_PATH];
int nItem = m_wndList.GetNextSelectedItem(pos);
LPLISTPARAM pliItem = (LPLISTPARAM) m_wndList.GetItemData(nItem); ZeroMemory(szSrc,MAX_PATH);
SHGetPathFromIDList(pliItem->lpidl,szSrc);
程序运行到LPLISTPARAM pliItem = (LPLISTPARAM) m_wndList.GetItemData(nItem);
就出错,跟踪了一下,pliItem 没有值。
LPLISTPARAM pliItem 我是在他的头文件中定义
typedef struct tagLISTPARAM
{
LPSHELLFOLDER lpsf;
LPITEMIDLIST lpidl;
UINT uType;
TCHAR szName[128];
}LISTPARAM, *LPLISTPARAM;
是我定义的不对吗?为什么取不到我想要的数据?
该成员函数能够通过nItem来获取与指定项相关的32位应用指定的值。这个值是LVITEM结构中的lParam成员,如同联机文档“平台SDK”中所描述的=================返回值是DWORD,为何楼主要用结构体指针?
CString *pStr = new CString;
*pStr = strFilePath;
m_listctrl.SetItemData(0,(DWORD_PTR)pStr);取的时候
CString *pCsSrcFilePath = (CString*)m_listctrl.GetItemData(0);
还要记得delete掉,不然会有内存泄露