Flags 位標(biāo)記的設(shè)置,你可以使用來初始化對話框。當(dāng)對話框返回時,它設(shè)置的這些標(biāo)記指出用戶的輸入。這個成員可以是下列標(biāo)記的組合。 |
標(biāo)記含意 OFN_ALLOWMULTISELECT 指定文件名列表框允許多選。如果同時你設(shè)置了OFN_EXPLORER標(biāo)記,對話框使用Explorer風(fēng)格用戶界面;否則它使用舊風(fēng)格用戶界面。 如果用戶選擇了一個以上的文件,lpstrFile 緩沖返回當(dāng)前目錄下所有被選擇的文件的文件名。nFileOffset 成員是到第一個文件名的偏移量(字節(jié)或字符),并且nFileExtension 成員不被使用。對于Explorer風(fēng)格對話框,目錄和文件名是被NULL分隔的,在最后的文件名后帶有額外的NULL。這個格式使Explorer風(fēng)格的對話框能返回包含空格的長文件名。對于舊風(fēng)格對話框,目錄和文件字符串是被空格分隔的,函數(shù)為帶有空格的文件名使用短文件名。你可以使用FindFirstFile 函數(shù)在短文件名和長文件名之間轉(zhuǎn)換。 如果你為一個舊風(fēng)格對話框指定了一個定制的模板,文件名列表框的定義必須包含LBS_EXTENDEDSEL值。 OFN_CREATEPROMPT 如果用戶指定了一個不存在的文件,這個標(biāo)記使用對話框能提示用戶是否新建這個文件。如果用戶選擇了新建這個文件,對話框關(guān)閉并且函數(shù)返回指定的名字;否則,對話框繼續(xù)停留。如果你使用帶有OFN_ALLOWMULTISELECT標(biāo)記的這個標(biāo)記,對話框允許用戶去指定一個不存在的文件。 OFN_DONTADDTORECENT Windows 2000: 防止系統(tǒng)為選擇的文件增加快捷鏈接到最近使用文檔中。要找回目錄的位置,調(diào)用還有CSIDL_RECENT標(biāo)記的SHGetSpecialFolderLocation 函數(shù)。 OFN_ENABLEHOOK 激活在lpfnHook 成員中指定的鉤子函數(shù)。 OFN_ENABLEINCLUDENOTIFY Windows 2000:
當(dāng)用戶打開一個文件夾時,引起對話框發(fā)送CDN_INCLUDEITEM 通知消息到你的OFNHookProc 程序。對話框為在最近打開的文件夾中的每一個項目發(fā)送一個通知。這些消息使你能夠控制那些在對話框中顯示的文件夾項目的列表。 OFN_ENABLESIZING Windows 2000,Windows 98: 使Explorer風(fēng)格的對話框可以使用鼠標(biāo)或鍵盤調(diào)整大小。缺省時,Explorer風(fēng)格的打開和另存為對話框允許被調(diào)整大小,不顧這個標(biāo)記是否被設(shè)置。這標(biāo)記僅在你提供了一個鉤子程序或定制模板時是必需的。舊風(fēng)格的對話框不允許調(diào)整大小。 OFN_ENABLETEMPLATE 指出lpTemplateName 成員是指向?qū)υ捒蚰0遒Y源的名字,這個模板資源在能被hInstance 成員識別的模塊中。 如果OFN_EXPLORER標(biāo)記被設(shè)置,系統(tǒng)使用指定的模板去建立一個對話框,是默認Explorer風(fēng)格對話框的子窗口。如果OFN_EXPLORER標(biāo)記沒有被設(shè)置,系統(tǒng)使用舊風(fēng)格的對話框替代默認的對話框。 OFN_ENABLETEMPLATEHANDLE 指出hInstance 成員能識別的包含預(yù)載對話框模板的數(shù)據(jù)塊。如果這個標(biāo)記被指定的,系統(tǒng)忽略lpTemplateName 。 如果OFN_EXPLORER標(biāo)記被設(shè)置,系統(tǒng)使用指定的模板去建立一個對話框,是默認Explorer風(fēng)格對話框的子窗口。如果OFN_EXPLORER標(biāo)記沒有被設(shè)置,系統(tǒng)使用模板去建立一個舊風(fēng)格對話框替代默認對話框。 OFN_EXPLORER 指出任何打開或另存為對話框使用新的Explorer風(fēng)格的用戶化模塊。關(guān)于更多的信息,參見Explorer-Style Hook Procedures和Explorer-Style Custom Templates。 缺省下,打開和另存為對話框使用Explorer風(fēng)格用戶界面,不顧這個標(biāo)記是否設(shè)置。這個標(biāo)記僅在你提供了一個鉤子程序或定制模板或設(shè)置了OFN_ALLOWMULTISELECT標(biāo)記時是必需的。 如果你想使用舊風(fēng)格的界面,省略OFN_EXPLORER 標(biāo)記,并且提供一個代替的舊風(fēng)格模板或鉤子程序。如果你想用舊風(fēng)格但不需要一個定制模板或鉤子程序,簡單的提供一個鉤子程序,讓它返回FALSE。 OFN_EXTENSIONDIFFERENT 指定用戶輸入的一個文件的擴展名與lpstrDefExt 指定的擴展名不同。如果lpstrDefExt 是NULL,函數(shù)不使用這個標(biāo)記。 OFN_FILEMUSTEXIST 指定用戶僅可以在文件名登錄字段中輸入已存在的文件的名字。如果這個標(biāo)記被指定的并且用戶輸入了一個無效的名字,對話框程序顯示一個等待消息框。如果這個標(biāo)記被指定,OFN_PATHMUSTEXIST標(biāo)記也被使用。 OFN_FORCESHOWHIDDEN Windows 2000: 強制顯示系統(tǒng)和隱藏屬性的文件,從而壓倒用戶設(shè)置的顯示或不顯示隱藏文件。否則,帶有系統(tǒng)和隱藏標(biāo)記的文件不被顯示。 OFN_HIDEREADONLY 隱藏只讀復(fù)選框。 OFN_LONGNAMES 對于舊風(fēng)格對話框,這個標(biāo)記引起對話框使用長文件名。如果這個標(biāo)記沒有被指定,或如果OFN_ALLOWMULTISELECT標(biāo)記也被設(shè)置,舊風(fēng)格對話框為帶有空格的文件名使用短文件名(8.3格式)。 Explorer風(fēng)格對話框忽略這個標(biāo)記,通常顯示長文件名。 OFN_NOCHANGEDIR 如果當(dāng)搜索文件時用戶改變了目錄的時候,恢復(fù)當(dāng)前目錄到它的初始值。 OFN_NODEREFERENCELINKS 引導(dǎo)對話框為選擇的快捷方式(.LNK)文件返回路徑和文件名。如果這個值沒有被指定,對話框返回這個快捷方式所引用文件的路徑和文件名。 OFN_NOLONGNAMES 對于舊風(fēng)格對話框,這個標(biāo)識引起對話框去使用短文件名(8.3格式)。 Explorer風(fēng)格對話框忽略這個標(biāo)記,通常顯示長文件名。 OFN_NONETWORKBUTTON 隱藏和顯示風(fēng)格按鈕。 OFN_NOREADONLYRETURN 指定返回的文件不帶有只讀復(fù)選框,不是在寫保護的目錄中。 OFN_NOTESTFILECREATE 指定文件不是在對話框關(guān)閉前建立的。如果應(yīng)用程序保存文件到一個建立的非映象風(fēng)格共享上,這個標(biāo)記應(yīng)該被指定的。當(dāng)一個應(yīng)用程序指定了這標(biāo)記,庫不能檢查寫保護,磁盤滿,打開驅(qū)動器門或網(wǎng)絡(luò)保護。應(yīng)用程序使用這個標(biāo)記必須小心執(zhí)行文件操作,因為一旦文件被關(guān)閉,它不能重新打開。 OFN_NOVALIDATE 指定公共對話框允許在返回的文件名中有無效的字符。典型的,正在調(diào)用的程序使用一個鉤子程序通過FILEOKSTRING 消息檢查文件名。如果在編輯控件中的文本框是空的或只包含了空格,那么文件和目錄列表框是被更新的。如果編輯控件中的文本框包含了別的東西,那么nFileOffset和 nFileExtension 的設(shè)置值是通過分析文本產(chǎn)生的。沒有默認的擴展名被添加到文本,也沒有文本被復(fù)制到lpstrFileTitle 指定的緩沖。 如果通過nFileOffset 指定的值比0小,文件是無效的。否則,文件名是有效的。如果OFN_NOVALIDATE沒有被指定,nFileExtension 和nFileOffset 可以被使用。 OFN_OVERWRITEPROMPT 如果選擇的文件已經(jīng)存在,使用另存為對話框產(chǎn)生一個消息框。用戶必須確認是否復(fù)蓋這個文件。 OFN_PATHMUSTEXIST 指定用戶僅能輸入的路徑和文件名。如果這個標(biāo)記被使用并且用戶在文件名輸入字段中鍵入了一個用效的路徑和文件名,對話框函數(shù)顯示一個等待消息。 OFN_READONLY 當(dāng)對話框建立時,顯示被選擇的只讀復(fù)選框。這個標(biāo)記指出當(dāng)對話框被關(guān)閉時只讀復(fù)選框的狀態(tài)。 OFN_SHAREAWARE 指出如果調(diào)用OpenFile 函數(shù)因為網(wǎng)絡(luò)共享沖突而失敗,這個錯誤被忽略并且對話框返回選擇的文件名。 如果這個標(biāo)記沒有被設(shè)置,當(dāng)用戶選擇的文件名發(fā)生網(wǎng)絡(luò)共享沖突時,對話框發(fā)送通知到你的鉤子程序。如果你設(shè)置了OFN_EXPLORER標(biāo)記,對話框發(fā)送CDN_SHAREVIOLATION 消息到鉤子程序。如果你沒有設(shè)置OFN_EXPLORER,對話框發(fā)送SHAREVISTRING 注冊的消息到鉤子程序。 OFN_SHOWHELP 使對話框顯示幫助按鈕。hwndOwner 成員必須指定一個窗口,這個窗口作為接收對話框發(fā)送的HELPMSGSTRING 注冊的消息,當(dāng)用戶單擊幫助按鈕時對話框發(fā)送這個消息。 當(dāng)用戶單擊幫助按鈕時,一個Explorer風(fēng)格的對話框發(fā)送CDN_HELP 通知消息到你的鉤子程序。