cfiledialog

CFileDialog類封裝了Windows常用的文件對話框。常用的文件對話框提供了一種簡單的與Windows標(biāo)準(zhǔn)相一致的文件打開和文件存盤對話框功能。

cfiledialog基本信息

中文名稱 CFileDialog 使用 用構(gòu)造函數(shù)提供的方式
相關(guān) Windows常用的文件對話框 注意 無須調(diào)用CDialog

可以用構(gòu)造函數(shù)提供的方式使用CFileDialog,也可以從CFileDialog派生出自己的對話類并編寫一個構(gòu)造函數(shù)來適應(yīng)你的需要。每種情況下,對話框都與標(biāo)準(zhǔn)MFC對話框一樣工作。因?yàn)樗鼈兌际荂CommonDialog類的派生類。

要使用CFileDialog,先用CFileDialog構(gòu)造函數(shù)構(gòu)造一個對象,當(dāng)創(chuàng)建了一個對話框后,可以設(shè)置或修改m_ofn結(jié)構(gòu)中的任何值,以初始化對話框控件的值或狀態(tài)。m_ofn結(jié)構(gòu)是OPENFILENAME類型的。要了解更多信息,可參閱聯(lián)機(jī)文檔"Win32 SDK"中的OPENFILENAME結(jié)構(gòu)。

初始化對話框控件后,調(diào)用DoModal成員函數(shù)顯示對話框并使用戶輸入路徑和文件。DoModal返回不論是用戶選擇了OK(IDOK)還是取消(IDCANCEL)按鈕。

當(dāng)DoModal返回IDOK,可以使用某一個CFileDIalog的公共成員函數(shù)獲取用戶輸入的信息。

CFileDIalog包含許多保護(hù)成員,使你可以處理常用的共享沖突、文件名合法性檢查、列表框改變通知。這些保護(hù)成員對許多應(yīng)用來說用處不大,因?yàn)槿笔√幚硎亲詣拥?。對這些函數(shù)來說,消息映射入口是不必要的,因?yàn)樗鼈兪菢?biāo)準(zhǔn)虛函數(shù)。

可以使用Windows CommDlgExtendError函數(shù)判斷在初始化對話框時是否是發(fā)生了錯誤,并獲取關(guān)于錯誤的更多信息。

析構(gòu)一個CFileDialog對象是自動,無須調(diào)用CDialog::EndDialog。

要使用戶選用多個文件,可在調(diào)用DoModal之前設(shè)置OFN_ALLOWMULTISELECT標(biāo)志。你應(yīng)提供文件名緩沖區(qū)來放置返回的多個文件名的列表,這通過用一個分配了的緩沖區(qū)指針替換m_ofn.lpstrFile來實(shí)現(xiàn),要在創(chuàng)建了CFileDialog之后調(diào)用DoModal之前進(jìn)行此操作。另外,必須用m_ofn.lpstrFile指向的緩沖區(qū)字節(jié)數(shù)來設(shè)置m_ofn.nMaxFile。

CFileDialog依賴于Windows3.1及以后版本中的COMMDLG.DLL。

如果從CFileDialog中派生出一個新類,可用消息映射處理。要擴(kuò)展消息處理,從CWnd中派生一個類,向新類中加入一個消息映射并為新消息提供成員函數(shù),無須提供一個鉤子函數(shù)來定制對話框。

要定制對話框,從CFileDialog中派生一個對象,提供一個定制對話模板,從擴(kuò)展控件中加入一個消息映射,處理通知消息。任意未處理的消息將傳遞給基類。

無須定制鉤子函數(shù)。

#include <afxdlgs.h>

CFileDialog類的成員

cfiledialog造價信息

市場價 信息價 詢價
材料名稱 規(guī)格/型號 市場價
(除稅)
工程建議價
(除稅)
行情 品牌 單位 稅率 供應(yīng)商 報價日期
暫無數(shù)據(jù)
材料名稱 規(guī)格/型號 除稅
信息價
含稅
信息價
行情 品牌 單位 稅率 地區(qū)/時間
暫無數(shù)據(jù)
材料名稱 規(guī)格/需求量 報價數(shù) 最新報價
(元)
供應(yīng)商 報價地區(qū) 最新報價時間
暫無數(shù)據(jù)

CObject

└CCmdTarget

└CWnd

└CDialog

└CCommonDialog

└CFileDialog

bOpenFileDialog

TRUE則顯示打開文件對話框,F(xiàn)ALSE則顯示保存文件對話框。

lpszDefExt

指定默認(rèn)的文件擴(kuò)展名。

lpszFileName

指定默認(rèn)的文件名。

dwFlags

指明一些特定風(fēng)格。

lpszFilter

是最重要的一個參數(shù),它指明可供選擇的文件類型和相應(yīng)的擴(kuò)展名。

pParentWnd

為父窗口指針。

cfiledialog常見問題

(

BOOL bOpenFileDialog,

LPCTSTR lpszDefExt = NULL,

LPCTSTR lpszFileName = NULL,

DWORD dwFlags = OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT,

LPCTSTR lpszFilter = NULL,

CWnd* pParentWnd = NULL

);

CFileDialog構(gòu)造一個CFileDialog對象操作

DoModal顯示對話框并使用戶可以進(jìn)行選擇

GetPathName返回選定文件的完整路徑

GetFileName返回選定文件的文件名

GetFileExt返回選定文件的擴(kuò)展文件名

GetFileTitle返回選定文件的標(biāo)題

GetNextPathName返回下一個選定文件的完整路徑

GetReadOnlyPref返回選定文件的只讀狀態(tài)

GetStartPosition返回文件名列表的第一個元素位置

可覆蓋的函數(shù)

OnShareViolation發(fā)生共享沖突時調(diào)用

OnFileNameOK確認(rèn)鍵入對話框中的文件名

OnLBSelChangedNotify當(dāng)列表框選擇改變時調(diào)用

OnInitDone處理WM_NOTIFY CDN_INITDONE消息

OnFileNameChange處理WM_NOTIFY CDN_SELCHANGE消息

OnFolderChange處理WM_NOTIFY CDN_FOLDERCHANGE消息

OnTypeChange處理WM_NOTIFY CDN_TYPECHANGE消息

文件選擇對話框的使用:首先構(gòu)造一個對象并提供相應(yīng)的參數(shù),構(gòu)造函數(shù)原型如下:

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

參數(shù)意義如下:

bOpenFileDialog 為TRUE則顯示打開對話框,為FALSE則顯示保存對話文件對話框。

lpszDefExt 指定默認(rèn)的文件擴(kuò)展名。

lpszFileName 指定默認(rèn)的文件名。

dwFlags 指明一些特定風(fēng)格。

lpszFilter 是最重要的一個參數(shù),它指明可供選擇的文件類型和相應(yīng)的擴(kuò)展名。參數(shù)格式如:

"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";文件類型說明和擴(kuò)展名間用 | 分隔,同種類型文件的擴(kuò)展名間可以用 ; 分割,每種文件類型間用 | 分隔,末尾用 || 指明。

pParentWnd 為父窗口指針。

dwFlags

Flags

A set of bit flags you can use to initialize the dialog box. When the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the following flags.

OFN_ALLOWMULTISELECT

Specifies that the File Name list box allows multiple selections. If you also set the OFN_EXPLORER flag, the dialog box uses the Explorer-style user interface; otherwise, it uses the old-style user interface.

If the user selects more than one file, the lpstrFile buffer returns the path to the current directory followed by the file names of the selected files. The nFileOffset member is the offset, in bytes or characters, to the first file name, and the nFileExtension member is not used. For Explorer-style dialog boxes, the directory and file name strings are NULL separated, with an extra NULL character after the last file name. This format enables the Explorer-style dialog boxes to return long file names that include spaces. For old-style dialog boxes, the directory and file name strings are separated by spaces and the function uses short file names for file names with spaces. You can use the FindFirstFile function to convert between long and short file names.

If you specify a custom template for an old-style dialog box, the definition of the File Name list box must contain the LBS_EXTENDEDSEL value.

OFN_CREATEPROMPT

If the user specifies a file that does not exist, this flag causes the dialog box to prompt the user for permission to create the file. If the user chooses to create the file, the dialog box closes and the function returns the specified name; otherwise, the dialog box remains open. If you use this flag with the OFN_ALLOWMULTISELECT flag, the dialog box allows the user to specify only one nonexistent file.

OFN_DONTADDTORECENT

Windows 2000/XP: Prevents the system from adding a link to the selected file in the file system directory that contains the user's most recently used documents. To retrieve the location of this directory, call the SHGetSpecialFolderLocation function with the CSIDL_RECENT flag.

OFN_ENABLEHOOK

Enables the hook function specified in the lpfnHook member.

OFN_ENABLEINCLUDENOTIFY

Windows 2000/XP: Causes the dialog box to send CDN_INCLUDEITEM notification messages to your OFNHookProc hook procedure when the user opens a folder. The dialog box sends a notification for each item in the newly opened folder. These messages enable you to control which items the dialog box displays in the folder's item list.

OFN_ENABLESIZING

Windows 2000/XP, Windows 98/Me: Enables the Explorer-style dialog box to be resized using either the mouse or the keyboard. By default, the Explorer-style Open and Save As dialog boxes allow the dialog box to be resized regardless of whether this flag is set. This flag is necessary only if you provide a hook procedure or custom template. The old-style dialog box does not permit resizing.

OFN_ENABLETEMPLATE

Indicates that the lpTemplateName member is a pointer to the name of a dialog template resource in the module identified by the hInstance member. If the OFN_EXPLORER flag is set, the system uses the specified template to create a dialog box that is a child of the default Explorer-style dialog box. If the OFN_EXPLORER flag is not set, the system uses the template to create an old-style dialog box that replaces the default dialog box.

OFN_ENABLETEMPLATEHANDLE

Indicates that the hInstance member identifies a data block that contains a preloaded dialog box template. The system ignores lpTemplateName if this flag is specified. If the OFN_EXPLORER flag is set, the system uses the specified template to create a dialog box that is a child of the default Explorer-style dialog box. If the OFN_EXPLORER flag is not set, the system uses the template to create an old-style dialog box that replaces the default dialog box.

OFN_EXPLORER

Indicates that any customizations made to the Open or Save As dialog box use the new Explorer-style customization methods. For more information, see Explorer-Style Hook Procedures and Explorer-Style Custom Templates.

By default, the Open and Save As dialog boxes use the Explorer-style user interface regardless of whether this flag is set. This flag is necessary only if you provide a hook procedure or custom template, or set the OFN_ALLOWMULTISELECT flag.

If you want the old-style user interface, omit the OFN_EXPLORER flag and provide a replacement old-style template or hook procedure. If you want the old style but do not need a custom template or hook procedure, simply provide a hook procedure that always returns FALSE.

OFN_EXTENSIONDIFFERENT

Specifies that the user typed a file name extension that differs from the extension specified by lpstrDefExt. The function does not use this flag if lpstrDefExt is NULL.

OFN_FILEMUSTEXIST

Specifies that the user can type only names of existing files in the File Name entry field. If this flag is specified and the user enters an invalid name, the dialog box procedure displays a warning in a message box. If this flag is specified, the OFN_PATHMUSTEXIST flag is also used. This flag can be used in an Open dialog box. It cannot be used with a Save As dialog box.

OFN_FORCESHOWHIDDEN

Windows 2000/XP: Forces the showing of system and hidden files, thus overriding the user setting to show or not show hidden files. However, a file that is marked both system and hidden is not shown.

OFN_HIDEREADONLY

Hides the Read Only check box.

OFN_LONGNAMES

For old-style dialog boxes, this flag causes the dialog box to use long file names. If this flag is not specified, or if the OFN_ALLOWMULTISELECT flag is also set, old-style dialog boxes use short file names (8.3 format) for file names with spaces. Explorer-style dialog boxes ignore this flag and always display long file names.

OFN_NOCHANGEDIR

Restores the current directory to its original value if the user changed the directory while searching for files.

Windows NT 4.0/2000/XP: This flag is ineffective for GetOpenFileName.

OFN_NODEREFERENCELINKS

Directs the dialog box to return the path and file name of the selected shortcut (.LNK) file. If this value is not specified, the dialog box returns the path and file name of the file referenced by the shortcut.

OFN_NOLONGNAMES

For old-style dialog boxes, this flag causes the dialog box to use short file names (8.3 format). Explorer-style dialog boxes ignore this flag and always display long file names.

OFN_NONETWORKBUTTON

Hides and disables the Network button.

OFN_NOREADONLYRETURN

Specifies that the returned file does not have the Read Only check box selected and is not in a write-protected directory.

OFN_NOTESTFILECREATE

Specifies that the file is not created before the dialog box is closed. This flag should be specified if the application saves the file on a create-nonmodify network share. When an application specifies this flag, the library does not check for write protection, a full disk, an open drive door, or network protection. Applications using this flag must perform file operations carefully, because a file cannot be reopened once it is closed.

OFN_NOVALIDATE

Specifies that the common dialog boxes allow invalid characters in the returned file name. Typically, the calling application uses a hook procedure that checks the file name by using the FILEOKSTRING message. If the text box in the edit control is empty or contains nothing but spaces, the lists of files and directories are updated. If the text box in the edit control contains anything else, nFileOffset and nFileExtension are set to values generated by parsing the text. No default extension is added to the text, nor is text copied to the buffer specified by lpstrFileTitle. If the value specified by nFileOffset is less than zero, the file name is invalid. Otherwise, the file name is valid, and nFileExtension and nFileOffset can be used as if the OFN_NOVALIDATE flag had not been specified.

OFN_OVERWRITEPROMPT

Causes the Save As dialog box to generate a message box if the selected file already exists. The user must confirm whether to overwrite the file.

OFN_PATHMUSTEXIST

Specifies that the user can type only valid paths and file names. If this flag is used and the user types an invalid path and file name in the File Name entry field, the dialog box function displays a warning in a message box.

OFN_READONLY

Causes the Read Only check box to be selected initially when the dialog box is created. This flag indicates the state of the Read Only check box when the dialog box is closed.

OFN_SHAREAWARE

Specifies that if a call to the OpenFile function fails because of a network sharing violation, the error is ignored and the dialog box returns the selected file name. If this flag is not set, the dialog box notifies your hook procedure when a network sharing violation occurs for the file name specified by the user. If you set the OFN_EXPLORER flag, the dialog box sends the CDN_SHAREVIOLATION message to the hook procedure. If you do not set OFN_EXPLORER, the dialog box sends the SHAREVISTRING registered message to the hook procedure.

OFN_SHOWHELP

Causes the dialog box to display the Help button. The hwndOwner member must specify the window to receive the HELPMSGSTRING registered messages that the dialog box sends when the user clicks the Help button. An Explorer-style dialog box sends a CDN_HELP notification message to your hook procedure when the user clicks the Help button.

OFN_USESHELLITEM

Do not use.

創(chuàng)建文件對話框可以使用DoModal(),在返回后可以利用下面的函數(shù)得到用戶選擇:

CString CFileDialog::GetPathName( ) 得到完整的文件名,包括目錄名和擴(kuò)展名如:c:\ test\ test1.txt

CString CFileDialog::GetFileName( ) 得到完整的文件名,包括擴(kuò)展名如:test1.txt

CString CFileDialog::GetFileExt( ) 得到完整的文件擴(kuò)展名,如:txt

CString CFileDialog::GetFileTitle ( ) 得到完整的文件名,不包括目錄名和擴(kuò)展名如:test1

POSITION CFileDialog::GetStartPosition( ) 對于選擇了多個文件的情況得到第一個文件位置。

CString CFileDialog::GetNextPathName( POSITION& pos ) 對于選擇了多個文件的情況得到下一個文件位置,并同時返回當(dāng)前文件名。但必須已經(jīng)調(diào)用過POSITION CFileDialog::GetStartPosition( )來得到最初的POSITION變量。

例如

{

CString

FilePathName;

CFileDialog dlg(TRUE);///TRUE為OPEN對話框,F(xiàn)ALSE為SAVE AS對話框

if(dlg.DoModal()==IDOK)

FilePathName=dlg.GetPathName();

}

相關(guān)信息:CFileDialog 用于取文件名的幾個成員函數(shù):

假如選擇的文件是C:WINDOWSTEST.EXE

則:

(1)GetPathName();取文件名全稱,包括完整路徑。取回C:\WINDOWS\TEST.EXE

(2)GetFileName();取文件全名:TEST.EXE

(3)GetFileTitle();取回TEST

(4)GetFileExt();取擴(kuò)展名EXE

補(bǔ)充: 在控制臺下使用這個類需要設(shè)置在靜態(tài)庫中使用MFC,然后構(gòu)造 AfxSetResourceHandle(GetModuleHandle(NULL));

相關(guān)頭文件 #include <Afxdlgs.h>

m_ofn Windows OPENFILENAME結(jié)構(gòu),提供對基本文件對話框參數(shù)的訪問

例:

int main()

{

AfxSetResourceHandle(GetModuleHandle(NULL));

CFileDialog filedlg(TRUE);

if(IDOK==filedlg.DoModal())

{

...

}

return 0;

}

cfiledialog文獻(xiàn)

貝朗Dialog+單泵血透機(jī)維修三例 貝朗Dialog+單泵血透機(jī)維修三例

格式:pdf

大?。?span id="ypomvun" class="single-tag-height">89KB

頁數(shù): 2頁

評分: 4.8

本文對貝朗Dialog+單泵血透機(jī)幾例故障都利用報警信息進(jìn)行檢查維修進(jìn)行了介紹,大大地提高了維修工作效率,體現(xiàn)了醫(yī)學(xué)工程人員價值。

立即下載
DIALOG贏得JABRA設(shè)計擴(kuò)大其在無線音頻領(lǐng)域中的成功 DIALOG贏得JABRA設(shè)計擴(kuò)大其在無線音頻領(lǐng)域中的成功

格式:pdf

大?。?span id="tk01obl" class="single-tag-height">89KB

頁數(shù): 1頁

評分: 4.3

Dialog半導(dǎo)體有限公司日前宣布:Jabra公司已經(jīng)采用該公司的短距離無線音頻芯片,用以開發(fā)其Jabra PRO^TM9450 Flex JP耳機(jī),該耳機(jī)可連接到辦公室電話和采用諸如Skype或Microsoft Lync等VoIP網(wǎng)絡(luò)電話軟件的電腦上。

立即下載
cfiledialog相關(guān)推薦
  • 相關(guān)百科
  • 相關(guān)知識
  • 相關(guān)專欄

最新詞條

安徽省政采項(xiàng)目管理咨詢有限公司 數(shù)字景楓科技發(fā)展(南京)有限公司 懷化市人民政府電子政務(wù)管理辦公室 河北省高速公路京德臨時籌建處 中石化華東石油工程有限公司工程技術(shù)分公司 手持無線POS機(jī) 廣東合正采購招標(biāo)有限公司 上海城建信息科技有限公司 甘肅鑫禾國際招標(biāo)有限公司 燒結(jié)金屬材料 齒輪計量泵 廣州采陽招標(biāo)代理有限公司河源分公司 高鋁碳化硅磚 博洛尼智能科技(青島)有限公司 燒結(jié)剛玉磚 深圳市東海國際招標(biāo)有限公司 搭建香蕉育苗大棚 SF計量單位 福建省中億通招標(biāo)咨詢有限公司 泛海三江 威海鼠尾草 Excel 數(shù)據(jù)處理與分析應(yīng)用大全 廣東國咨招標(biāo)有限公司 拆邊機(jī) 甘肅中泰博瑞工程項(xiàng)目管理咨詢有限公司 山東創(chuàng)盈項(xiàng)目管理有限公司 當(dāng)代建筑大師 廣西北纜電纜有限公司 大山檳榔 上海地鐵維護(hù)保障有限公司通號分公司 舌花雛菊 甘肅中維國際招標(biāo)有限公司 華潤燃?xì)猓ㄉ虾#┯邢薰? 湖北鑫宇陽光工程咨詢有限公司 GB8163標(biāo)準(zhǔn)無縫鋼管 中國石油煉化工程建設(shè)項(xiàng)目部 韶關(guān)市優(yōu)采招標(biāo)代理有限公司 莎草目 電梯平層準(zhǔn)確度 建設(shè)部關(guān)于開展城市規(guī)劃動態(tài)監(jiān)測工作的通知 廣州利好來電氣有限公司 四川中澤盛世招標(biāo)代理有限公司