精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>WINDOWS界面设计>>MFC中有浏览对话框吗(只返回路径)

主题:MFC中有浏览对话框吗(只返回路径)
发信人: abentu()
整理人: wenbobo(2002-12-06 22:33:17), 站内信件
就是只返回文件夹名,不需要文件名,如同安装程序中选择安装目录的按钮
盼指教。
那一位大侠有控件源文件,麻烦给我邮一份。谢谢。

--
请在回邮箱上打个勾或回信箱[email protected]

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 210.78.135.77]
发信人: kingfox (老狐狸), 信区: CLanguage
标  题: Re: MFC或win98中有浏览对话框吗?(只返回路径)
发信站: 网易虚拟社区 (Wed Sep 29 22:27:29 1999), 站内信件

【 在 abentu (阿笨兔) 的大作中提到: 】
: 就是只返回文件夹名,不需要文件名,如同安装程序中选择安装目录的按钮
: 盼指教。
: 那一位大侠有控件源文件,麻烦给我邮一份。谢谢。

编写过Windows Application的程序员一定熟悉经典的用于显示“打开文件”和“
保存文件”对话框的的GetOpenFileName和GetSaveFileName函数。可是这两函数
只能显示选择文件的对话框。那么,如何显示一个只选择文件夹的对话框呢?

 

Win32 API的Shell Extension外壳扩展接口提供了这种途径。下面是一段用C语言
编写的程序,可以显示上图所示的对话框。 void SelectDirDlg( char Dir[] )

{
   BROWSEINFO bi;
   ITEMIDLIST *pidl;

   bi.hwndOwner = NULL;
   bi.pidlRoot = NULL;
   bi.pszDisplayName = Dir;
   bi.lpszTitle = "Select a directory";
   bi.ulFlags = BIF_RETURNONLYFSDIRS;
   bi.lpfn = NULL;
   bi.lParam = 0;
   bi.iImage = 0;

   pidl = SHBrowseForFolder( &bi );     /* Display "Select Folder" dia
log box, Get the 
                                           folder name and convert it 
into a ITEMLIST 
                                           data structure. */
   if ( pidl == NULL )
      Dir[0] = 0;
   if (!SHGetPathFromIDList( pidl, Dir ))       /* Retrieve folder nam
e from ITEMLIST 
                                                   structure. */
      Dir[0] = 0;
}

 



--
------------------------------------------------------------
有缘则聚,缘尽则散,随缘而定,随遇而安。
------------------------------------------------------------
欢迎光临“电子工程师园地”http://kingfox.163.net

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.0.107]

[关闭][返回]