文件對話框(主要分為“打開”和“另存為”兩種),是軟件中常常會運用的輔助功能模塊,可以方便使用者查看或者保存一些文件或者數據。在這一個知識點中,我們主要討論“打開”文件的使用。
“打開”文件對話框的使用,一般要經過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);//打開文件
}
~~~
※值得注意的是,上面的程序中也包含兩個重要的知識點:如何獲取可執行程序所在目錄的路徑和如何打開一個文件。

效果圖
- 前言
- VC++中自定義熱鍵及響應
- CFileDialog文件對話框
- VC++中客戶區保存為BMP圖片
- VC++讀、寫注冊表
- VC++播放音頻文件和音頻數據的方法
- VC++調用Matlab編寫的DLL(混合編程)
- VC++中文件讀、寫和其他相關操作匯總
- VC++獲取系統當前時間
- VC++按鈕控件字體設置
- VC++軟件界面風格簡單美化
- VC++中一些常用的數據類型之間的相互轉化
- VC++中截取字符串的方法
- VC++中vector矢量的使用方法及隨機相關
- VC++中結構體的定義及使用
- VC++中List Control控件的使用方法介紹
- VC++中窗口過程函數及其消息發送、響應機制介紹
- VC++中Ribbon編程架構及SDI架構多視圖切換介紹
- 串口通信基礎知識及VC++實現
- VC++中單個鍵盤按鍵的響應
- VC++中的計時器及多媒體高精度計時器
- VC++編寫DLL導出函數及其調用方法
- VC++對話框(CDialog)的全屏顯示及控件居中顯示
- VC++對話框(CDialog)添加背景圖片
- VC++圖片控件(Picture Control)顯示資源位圖(BMP)、文件位圖(BMP)、其它格式文件圖片(JPG\PNG\BMP)的方法
- VC++對Access數據庫的操作(查詢、插入、更新、刪除等)