如何实现打开文件路径,对话框。//不是打开文件对话狂。是要EDIT显示一个路径不是文件。

nnddsscc 2003-11-04 09:52:28
如何实现打开文件路径,对话框。//不是打开文件对话狂。是要EDIT显示一个路径不是文件。
...全文
25 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Friecin 2003-11-05
  • 打赏
  • 举报
回复
up SelectDirectory;
推荐 myy() 的方式!
myy 2003-11-05
  • 打赏
  • 举报
回复
SelectDirectory就一个函数,而且是BCB(6)自带的,还不够简单!?不比控件好用!?
goneaway1981 2003-11-05
  • 打赏
  • 举报
回复
up
nnddsscc 2003-11-04
  • 打赏
  • 举报
回复
谢~~~~~~~
没有控件的?只是想让一个EDIT得到一个路径而已。。。。
myy 2003-11-04
  • 打赏
  • 举报
回复
1. SelectDirectory函数

2.

AnsiString Dir="";
BROWSEINFO bi;
char WDir[MAX_PATH];
char FolderName[MAX_PATH]={0x0,0x0};
LPITEMIDLIST ItemID;

memset(&bi, 0, sizeof(BROWSEINFO));
memset(WDir, 0, MAX_PATH);
bi.hwndOwner = Handle;
bi.pszDisplayName = FolderName;
bi.ulFlags =BIF_RETURNONLYFSDIRS|BIF_NEWDIALOGSTYLE|BIF_RETURNFSANCESTORS;
bi.lpszTitle = "选择文件夹";
try
{
CoInitialize(NULL);
ItemID = SHBrowseForFolder(&bi);
if(ItemID!=NULL)
{
SHGetPathFromIDList(ItemID, WDir);
Dir = AnsiString(WDir);
}
else
{ Dir=""; return; }
}
__finally
{
GlobalUnlock(GlobalHandle(ItemID));
GlobalFree(GlobalHandle(ItemID));
}
}
if(Dir=="" || !DirectoryExists(Dir))
{
MessageBox(Handle,AnsiString("打开错误!\n\n磁盘或文件夹:"+Dir).c_str(),"提示信息",MB_OK|MB_ICONWARNING);
}
else
{
MessageBox(Handle,AnsiString("选择磁盘或文件夹:"+Dir).c_str(),"提示信息",MB_OK|MB_ICONWARNING);
}

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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