mfc关于GetItemData文件路径,该怎么解决
mfc关于GetItemData文件路径
有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;
是我定义的不对吗?为什么取不到我想要的数据?
------解决方案--------------------
CListCtrl::GetItemData
DWORD GetItemData(int nItem) const
返回值:与指定项相关的32位应用指定的值。
参数: nItem 要获取数据的列表项的索引值。
说明:
该成员函数能够通过nItem来获取与指定项相关的32位应用指定的值。这个值是LVITEM结构中的lParam成员,如同联机文档“平台SDK”中所描述的
=================
返回值是DWORD,为何楼主要用结构体指针?
------解决方案--------------------
你要用GetItemData取文件路径,你总要先把文件路径存进去把?用SetItemData,你存的时候总知道把?我上面只是随便写的一个例子,反正只要存入个指针就可以,可以是一个CString的指针也可以是一个结构体的指针。
------解决方案--------------------
没有SetItemData,你Get肯定是空啊。这两个是相配对的。
编译器没那么智能,你没Set他就知道你要什么!
有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;
是我定义的不对吗?为什么取不到我想要的数据?
------解决方案--------------------
CListCtrl::GetItemData
DWORD GetItemData(int nItem) const
返回值:与指定项相关的32位应用指定的值。
参数: nItem 要获取数据的列表项的索引值。
说明:
该成员函数能够通过nItem来获取与指定项相关的32位应用指定的值。这个值是LVITEM结构中的lParam成员,如同联机文档“平台SDK”中所描述的
=================
返回值是DWORD,为何楼主要用结构体指针?
------解决方案--------------------
你要用GetItemData取文件路径,你总要先把文件路径存进去把?用SetItemData,你存的时候总知道把?我上面只是随便写的一个例子,反正只要存入个指针就可以,可以是一个CString的指针也可以是一个结构体的指针。
------解决方案--------------------
没有SetItemData,你Get肯定是空啊。这两个是相配对的。
编译器没那么智能,你没Set他就知道你要什么!