Visual c++ MFC ShellTreeCtrl选定元素完整路径
我正在尝试构建一个简单的应用程序,显示我选择的目录的完整路径, 但是,到目前为止,我只能得到目录的名称:Visual c++ MFC ShellTreeCtrl选定元素完整路径,visual-c++,mfc,Visual C++,Mfc,我正在尝试构建一个简单的应用程序,显示我选择的目录的完整路径, 但是,到目前为止,我只能得到目录的名称: void CFolderBrowserDlg::OnTvnSelchangedMfcshelltree1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR); // TODO: Add your control notifi
void CFolderBrowserDlg::OnTvnSelchangedMfcshelltree1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
// TODO: Add your control notification handler code here
*pResult = 0;
TVITEMW hItem = pNMTreeView->itemNew;
TCHAR szText[256];
hItem.pszText= szText;
hItem.cchTextMax= 256*sizeof(TCHAR);
hItem.mask= TVIF_TEXT;
TreeView_GetItem(pNMTreeView->hdr.hwndFrom,&hItem);
m_Folder= szText;
UpdateData(FALSE);
}
void CFolderBrowserDlg::OnTvnSelchangedMfcshelltree1(NMHDR*pNMHDR,LRESULT*pResult)
{
LPNMTREEVIEW pNMTreeView=重新解释铸件(pNMHDR);
//TODO:在此处添加控件通知处理程序代码
*预设值=0;
TVITEMW hItem=pNMTreeView->itemNew;
TCHAR-szText[256];
hItem.pszText=szText;
hItem.cchTextMax=256*sizeof(TCHAR);
hItem.mask=TVIF_文本;
TreeView_GetItem(pNMTreeView->hdr.hwndFrom和hItem);
m_Folder=szText;
更新数据(假);
}
这是我的密码。你能给我一些建议吗
CString fullpath;
HTREEITEM current = hItem.hItem;
while (current != NULL)
{
CString thistext = GetTreeCtrl()->GetItemText(current);
fullpath = thistext + _T("\\") + fullpath;
current = GetTreeCtrl()->GetParentItem(current);
}
这是一般的想法,虽然我没有实际测试,但它应该让你朝着正确的方向前进
这是一般的想法,虽然我没有实际测试,但它应该让您朝着正确的方向前进。您编写的代码太多了。这对我很有用:
void CMFCdlg1Dlg::OnTvnSelchangedMfcshelltree1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
m_Tree.GetItemPath(m_EditString, pNMTreeView->itemNew.hItem);
UpdateData(false);
}
如果您需要C样式的字符串,您甚至可以获得它:
LPTSTR path = m_EditString.GetBuffer(0);
你把它编得太多了。这对我很有用:
void CMFCdlg1Dlg::OnTvnSelchangedMfcshelltree1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
m_Tree.GetItemPath(m_EditString, pNMTreeView->itemNew.hItem);
UpdateData(false);
}
如果您需要C样式的字符串,您甚至可以获得它:
LPTSTR path = m_EditString.GetBuffer(0);
我不知道你说的GetTreeCtrl()是什么意思,对不起,我是MFCWell的新手,如果你使用CTreeView,那么你必须使用GetTreeCtrl()方法来获取实际的CTreeCtrl对象,这是一个拥有与实际树控件交互所需的所有优点的类。我不知道你说的GetTreeCtrl()是什么意思,抱歉,我是MFCWell的新手,如果您使用CTreeView,那么您必须使用GetTreeCtrl()方法来获取实际的CTreeCtrl对象,该类具有与实际树控件交互所需的所有优点。