windows API实现用户选择文件路径的对话框 您所在的位置:网站首页 mg2580s怎么取墨盒s视频 windows API实现用户选择文件路径的对话框

windows API实现用户选择文件路径的对话框

#windows API实现用户选择文件路径的对话框| 来源: 网络整理| 查看: 265

在编写应用程序时,有时需要用户选择某个文件,以供应用程序使用,比如在某些管理程序中需要打开某一个进程,这个时候需要弹出一个对话框来将文件路径以树形图的形式表示出来,以图形化的方式供用户选择文件路径,而不是需要用户自己输入文件路径。

  在MFC中能够弹出对话框供用户选择文件路径的类是CFileDialog,但是这个类的主要问题是当用户选择文件路径后,会打开相关的文件,与我们的要求不符,在Windows平台下有两个函数SHBrowseForFolder、SHGetPathFromIDList。这两个函数的说明如下:

LPITEMIDLIST WINAPI SHBrowseForFolder( LPBROWSEINFO lpbi);该函数的主要作用是弹出一个对话框,便于用户选择文件的路径,传递的参数是一个LPBROWSEINFO的结构体,这个结构体的原型如下:

typedef struct _browseinfo { HWND hwndOwner;//该对话框的属主窗口句柄 LPCITEMIDLIST pidlRoot;//对话框中显示的最上层目录 LPTSTR pszDisplayName;//指向一个缓冲区,用于返回用户选择的文件名 LPCTSTR lpszTitle;//文件对话框的标题 UINT ulFlags;//文件对话框相关标志 BFFCALLBACK lpfn;//文件对话框对应的回调函数的地址 LPARAM lParam;//附加参数 int iImage;//返回用户选中的图片的索引} BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO;

其中最主要的参数是pszDisplayName,这个参数指向一个缓冲区,用于存储用户选择的文件名(只是文件名不包括具体的路径);lpszTitle这个参数表示的是对话框的具体名称,这两个参数有一个没有给则会造成程序的错误,主要是对话框不能出来。另外的是标志的变量,一般使用的是BIF_BROWSEINCLUDEFILES(允许用户选择文件)、BIF_RETURNONLYFSDIRS(只能选择目录,不能选择文件)

在用户选择了相关的文件并点击对话框中的确定时,会返回一个LPITEMIDLIST的指针,这个结构表示的是文件系统的相关信息,接下来就是利用函数SHGetPathFromIDList来真正获取用户选择的文件路径,该函数的原型如下:

WINSHELLAPI BOOL WINAPI SHGetPathFromIDList( LPCITEMIDLIST pidl, LPSTR pszPath );该函数主要利用pidl对应的文件系统的相关信息,通过第二个参数返回文件的路径,下面是具体的例子:

#include #include #include #include #pragma comment(lib, "comctl32.lib")int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ LPITEMIDLIST pil = NULL; INITCOMMONCONTROLSEX InitCtrls = {0}; TCHAR szBuf[4096] = {0}; BROWSEINFO bi = {0}; bi.hwndOwner = NULL; bi.iImage = 0; bi.lParam = NULL; bi.lpfn = NULL; bi.lpszTitle = _T("请选择文件路径"); bi.pszDisplayName = szBuf; bi.ulFlags = BIF_BROWSEINCLUDEFILES; InitCommonControlsEx(&InitCtrls);//在调用函数SHBrowseForFolder之前需要调用该函数初始化相关环境 pil = SHBrowseForFolder(&bi); if (NULL != pil)//若函数执行成功,并且用户选择问件路径并点击确定 { SHGetPathFromIDList(pil, szBuf);//获取用户选择的文件路径 wprintf_s(_T("%s"), szBuf); } return 0;}

0 0 windows API实现用户选择文件路径的对话框 文件选择对话框、路径选择对话框的函数实现 调用API实现路径选择对话框 对话框实现选择文件,并显示相应的路径 windows api调用打印对话框如何将用户选择的配置返回 选择保存文件路径的对话框 在VC中如何使用对话框让用户选择自己保存文件的路径 在VC中如何使用对话框让用户选择自己保存文件的路径 C# Windows-API-Code-Pack文件选择对话框实例 JFileChooser 文件选择对话框API MFC选择文件夹对话框,选择文件路径 调用系统控件,打开选择文件或路径的对话框 保存文件选择路径时,弹出对话框 的 原理 windows api打开文件对话框 Cocoa 选择保存路径对话框 和 选择打开文件对话框 选择文件的对话框 VC弹出选择“文件路径”和选择“文件夹路径”对话框 获取公共文件路径选择对话框 《剑指offer》——打印1到最大的n位数 swift控件之旅之UITextField LInux学习网站 iOS越狱开发 hdu1565方格取数(1)【状态压缩】 windows API实现用户选择文件路径的对话框 阅读赵炯的《Linux内核完全注释》之前必须知道的! iOS越狱检测 android-CTS调试方法 KMP算法 RandomAccessFile ecelpse网格DEBUG步骤 二叉树的先序中序后序遍历问题 JAVA-五子棋实现


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有