SelectDirectory 函数(50分)

  • 主题发起人 主题发起人 hhjjhhjj
  • 开始时间 开始时间
H

hhjjhhjj

Unregistered / Unconfirmed
GUEST, unregistred user!
有没有这样的对话框:
和使用SelectDirectory函数出现的对话框一样的,但在左下方有新建目录的按钮。
我在设置IIS-->FTP时看到过这样的对话框,但用这个函数就做不出这样的效果。
谢谢!
 
SelectDirectory用到的好象是系统的对话框,应该不能加按钮的,能自己做个相似的Form吗
 
我的意思不是在上面另加一个按钮,我是想知道有没有像那样的对话框。
 
uses
shlobj;


function DLG_SelectDir(handle: HWND; Title: Pchar; Flags: UINT = BIF_RETURNONLYFSDIRS):string;
//如果取消取返回为空,否则返回选中的路径
var
Info: TBrowseInfo;
IDList: pItemIDList;
Buffer: PChar;
begin
result:='';
Buffer := StrAlloc(MAX_PATH);
with Info do
begin
hwndOwner := Handle; //目录对话框所属的窗口句柄
pidlRoot := nil; //起始位置,缺省为我的电脑
pszDisplayName := Buffer; //用于存放选择目录的指针
lpszTitle := Title ; //对话框提示信息
ulFlags := Flags; //BIF_RETURNONLYFSDIRS or BIF_BROWSEINCLUDEFILES;
//选择参数,此处表示显示目录和文件,如果只显示目录则将后一个去掉即可

{可用的选择标志的说明:
BIF_BROWSEFORCOMPUTER 只能选中计算机的名字,选择其它,OK按钮为灰
BIF_BROWSEFORPRINTER 只能选中打印机的名字,选择其它,OK按钮为灰
BIF_DONTGOBELOWDOMAIN 在域名级别下面不包括网络文件夹
BIF_RETURNFSANCESTORS 只能选中文件系统结点,选择其它,OK按钮为灰
BIF_RETURNONLYFSDIRS 只能选中目录,选择其它,OK按钮为灰
BIF_STATUSTEXT 在对话框里包含一个状态文本,回调函数可以给对话框发送消息
BIF_BROWSEINCLUDEFILES 可以显示文件,同时可以选中

BIF_RETURNONLYFSDIRS+64;
//+64表示可以新建目录,支持右健菜单,+16表示显示一个Edit框。
}
lpfn := nil; //指定回调函数指针
lParam := 0; //传递给回调函数参数
IDList := SHBrowseForFolder(Info); //读取目录信息
end;
if IDList <> nil then
begin
SHGetPathFromIDList(IDList, Buffer); //将目录信息转化为路径字符串
result := strpas(Buffer);
end;
StrDispose(buffer);
end;
 
看我的个人笔记,有个函数就是实现你要的功能
 
多人接受答案了。
 
后退
顶部