mfc 重载cedit 实现双击编辑框选择目录并把路径存放到编辑框中

barry_di 2017-07-14 05:21:49
mfc 重载cedit 实现双击编辑框选择目录并把路径存放到编辑框中,是目录路径,不是文件路径
...全文
217 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
barry_di 2017-07-17
  • 打赏
  • 举报
回复
void CMyEdit::OnLButtonDblClk(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 BROWSEINFO info; memset(&info,0,sizeof(BROWSEINFO)); char path[256]; memset(path,0,256); //info.pszDisplayName = "aaaa"; //设置pszDisplayName 这一句导致错误 info.lpszTitle = _T("请选择一个文件夹:"); info.ulFlags = BIF_RETURNONLYFSDIRS | BIF_USENEWUI; info.lpfn = NULL; LPITEMIDLIST lpDlist = SHBrowseForFolder(&info); if (lpDlist) // 单击了确定按钮; { SHGetPathFromIDList(lpDlist,path); } SetWindowText(path); } 谢谢楼上的兄弟,你的是正解
schlafenhamster 2017-07-17
  • 打赏
  • 举报
回复
是这个吗?

#define BIF_NEWDIALOGSTYLE 0x0040
void CMyEdit::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
    BROWSEINFO bi;                       //BROWSEINFO结构有很多成员参数可以自己设置
    ZeroMemory(&bi,sizeof(BROWSEINFO));  //将以&bi为起始地址,大小为sizeof(BROWSEINFO)的内存区域用0填充
    bi.ulFlags=BIF_BROWSEINCLUDEFILES;   //设置弹出的对话框属性。此处意思为包含文件。如果不设这个值,默认的是只有文件夹。ulFlags还可以定义很多别的属性
    bi.ulFlags=BIF_NEWDIALOGSTYLE;       //窗口可以调整大小,有新建文件夹按钮
    bi.lpszTitle="指定要处理的文件夹";   //在窗口内显示提示用户的语句
    LPITEMIDLIST pidl = SHBrowseForFolder(&bi);   //Displays a dialog box enabling the user to select a Shell folder.
//
    TCHAR * path = new TCHAR[MAX_PATH];
    if(pidl != NULL)
    {
        SHGetPathFromIDList(pidl,path); //Converts an item identifier list to a file system path
    }
	afxDump << path << "\n";
	SetWindowText(path);
//	CEdit::OnMButtonDblClk(nFlags, point);
}

barry_di 2017-07-16
  • 打赏
  • 举报
回复
有没有谁写过

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧