MFC 打開文件對話框 打開單個文件


CFileDialog的語法:

CFileDialog(BOOL bOpenFileDialog,
LPCTSTR lpszDefExt=NULL,
LPCTSTR lpszFileName=NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter=NULL,
CWnd * pParentWnd=NULL); 

第一個參數 bOpenFileDialog為TRUE或FALSE。TRUE為打開文件;FALSE為保存文件。 
第二個參數 lpszDefExt為缺省的擴展名。 
第三個參數 lpszFileName為顯示在文件名組合框的編輯框的文件名,一般可選NULL 
第四個參數 dwFlags為對話框風格,一般為OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 即隱藏只讀選項和覆蓋已有文件前提示。

OFN_ALLOWMULTISELECT:允許選擇多個文件

OFN_CREATEPROMPT:如果輸入的文件名不存在,則對話框返回詢問用戶是否根據次文件名創建文件的消息框

OFN_FILEMUSTEXIST:只能輸入已存在的文件名

OFN_FORCESHOWHIDDEN:可以顯示隱藏的文件

OFN_NOREADONLYRETURN:不返回只讀文件

OFN_OVERWRITEPROMPT:保存的文件已存在時,顯示文件已存在的信息


第五個參數 LpszFilter為下拉列表樞中顯示文件類型。 

     lpszFilter 是最重要的一個參數,它指明可供選擇的文件類型和相應的擴展名。參數格式如:

 
  "JPG Files (*.jpg)|*.jpg|All Files (*.*)|*.*||";文件類型說明和擴展名間用 | 分隔,同種類型文件的擴展名間可以用 ; 分割,每種文件類型間用 | 分隔,末尾用 || 指明。 

 

    因為vs 2005之后項目使用的是unicode字符集,所以如果直接強制類型轉換為LPCTSTR, 運行會發現文件類型處顯示為亂碼,可以在“項目-屬性”中將"unicode字符集"換成"多字節字符集"就行了,也可以將文本內容放在_T()里面,不變字符集


第六個參數 pParentWnd為父窗口指針, 一般可選NULL。

 

CString FilePathName;
    CFileDialog dlg(TRUE, //TRUE為OPEN對話框,FALSE為SAVE AS對話框
        NULL, 
        NULL,
        OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
        (LPCTSTR)_TEXT("JPG Files (*.jpg)|*.jpg|All Files (*.*)|*.*||"),
        NULL);
    if(dlg.DoModal()==IDOK)
    {
        FilePathName=dlg.GetPathName(); //文件名保存在了FilePathName里
    }
    else
    {
         return;
    }

 

轉載自:http://blog.chinaunix.net/uid-14827902-id-3058983.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM