ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
文件对话框(主要分为“打开”和“另存为”两种),是软件中常常会运用的辅助功能模块,可以方便使用者查看或者保存一些文件或者数据。在这一个知识点中,我们主要讨论“打开”文件的使用。 “打开”文件对话框的使用,一般要经过3个步骤,下面结合实例来说明(**完整的实例请到我的CSDN资源中下载:[http://download.csdn.net/detail/margin1988/3526058](http://download.csdn.net/detail/margin1988/3526058)**): ⑴  定义文件对话框对象及类型 ~~~ CFileDialog dlg(TRUE,"*","*.*",OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,"*.*|*.*|"); ~~~ ⑵  设置文件对话框初始化目录 //第一步:**获取应用程序所在路径** ~~~ CString g_BasePath;//应用程序所在路径 char filepath[256],sDrive[256],sDir[256],sFname[256],sExt[256], pStrPath[256]; GetModuleFileName(AfxGetInstanceHandle(),filepath,256); _tsplitpath_s(filepath,sDrive,sDir,sFname,sExt); _tcscpy_s(pStrPath,sDrive); _tcscat_s(pStrPath,sDir); long nLen =_tcslen(pStrPath); if(pStrPath[nLen-1] != '\\') _tcscat_s(pStrPath,"\\"); g_BasePath = pStrPath;//char数组àCString ~~~ //第二步:设置文件对话框的初始化目录 ~~~ dlg.m_ofn.lpstrInitialDir=_T(g_BasePath);//初始化目录|CStringàLPCSTR ~~~ ⑶  打开文件对话框和文件 ~~~ if(IDOK==dlg.DoModal())//打开文件对话框 { CString ss=dlg.GetPathName();//得到完整的文件名,包括目录名和扩展名 ShellExecute(NULL,"open",ss,NULL,NULL,SW_SHOWNORMAL);//打开文件 } ~~~ ※值得注意的是,上面的程序中也包含两个重要的知识点:如何获取可执行程序所在目录的路径和如何打开一个文件。 ![](https://box.kancloud.cn/2016-08-31_57c6b4a35b6f7.gif) 效果图