我正在尝试构建一个简单的应用程序,它显示我选择的目录的完整路径,但是到目前为止我唯一能得到的是目录的名称:
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);
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码。你能给我建议吗?
小智 5
你已经过度编码了。这对我有用:
void CMFCdlg1Dlg::OnTvnSelchangedMfcshelltree1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
m_Tree.GetItemPath(m_EditString, pNMTreeView->itemNew.hItem);
UpdateData(false);
}
Run Code Online (Sandbox Code Playgroud)
成员变量是:
m_Tree, type CMFCShelltreeCtrl attached to the ShellTree control
m_EditString, type CString attached to the Edit control
Run Code Online (Sandbox Code Playgroud)
如果你需要它,你甚至可以得到一个 C 风格的字符串:
LPTSTR path = m_EditString.GetBuffer(0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1161 次 |
| 最近记录: |