cfiledialog

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

cfiledialog基本信息

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

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

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

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

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

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

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

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

要使用戶選用多個(gè)文件,可在調(diào)用DoModal之前設(shè)置OFN_ALLOWMULTISELECT標(biāo)志。你應(yīng)提供文件名緩沖區(qū)來放置返回的多個(gè)文件名的列表,這通過用一個(gè)分配了的緩沖區(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中派生出一個(gè)新類,可用消息映射處理。要擴(kuò)展消息處理,從CWnd中派生一個(gè)類,向新類中加入一個(gè)消息映射并為新消息提供成員函數(shù),無須提供一個(gè)鉤子函數(shù)來定制對(duì)話框。

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

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

#include <afxdlgs.h>

CFileDialog類的成員

cfiledialog造價(jià)信息

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

CObject

└CCmdTarget

└CWnd

└CDialog

└CCommonDialog

└CFileDialog

bOpenFileDialog

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

lpszDefExt

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

lpszFileName

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

dwFlags

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

lpszFilter

是最重要的一個(gè)參數(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)造一個(gè)CFileDialog對(duì)象操作

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

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

GetFileName返回選定文件的文件名

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

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

GetNextPathName返回下一個(gè)選定文件的完整路徑

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

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

可覆蓋的函數(shù)

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

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

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

OnInitDone處理WM_NOTIFY CDN_INITDONE消息

OnFileNameChange處理WM_NOTIFY CDN_SELCHANGE消息

OnFolderChange處理WM_NOTIFY CDN_FOLDERCHANGE消息

OnTypeChange處理WM_NOTIFY CDN_TYPECHANGE消息

文件選擇對(duì)話框的使用:首先構(gòu)造一個(gè)對(duì)象并提供相應(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則顯示打開對(duì)話框,為FALSE則顯示保存對(duì)話文件對(duì)話框。

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

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

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

lpszFilter 是最重要的一個(gè)參數(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)建文件對(duì)話框可以使用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( ) 對(duì)于選擇了多個(gè)文件的情況得到第一個(gè)文件位置。

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

例如

{

CString

FilePathName;

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

if(dlg.DoModal()==IDOK)

FilePathName=dlg.GetPathName();

}

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

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

則:

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

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

(3)GetFileTitle();取回TEST

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

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

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

m_ofn Windows OPENFILENAME結(jié)構(gòu),提供對(duì)基本文件對(duì)話框參數(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="yf1zzue" class="single-tag-height">89KB

頁數(shù): 2頁

評(píng)分: 4.8

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

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

格式:pdf

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

頁數(shù): 1頁

評(píng)分: 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)知識(shí)
  • 相關(guān)專欄

最新詞條

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