如何從公共對話方塊控制項中提取多個檔名稱

2021-08-29 03:28:01 字數 2270 閱讀 4223

**如下:

private sub command1_click()

dim i as integer, title as string,  filenames as string

with commondialog1

.filename = ""

.filter = "all files|*.*"    '過濾器指定在對話方塊的檔案列表框中顯示的檔案的型別

.flags = &h200 '允許多重選擇。

.action = 1

i = instrrev(.filename, "\")'

title = left(.filename, i)' 目錄

filenames = mid(.filename, i + 1)' all selectes files

end with

filenames = replace(filenames, chr(32), vbcrlf)

msgbox filenames, vbyesno, title  '顯示對話方塊

end sub

說明(摘自msdn):

flags屬性:

cdlofnallowmultiselect&h200

它指定檔名列表框允許多重選擇。 執行時,通過按 shift 鍵以及使用 up arrow 和 down arrow 鍵可選擇多個檔案。作完此操作後,filename屬性就返回乙個包含全部所選檔名的字串。串中各檔名用空格隔開。

cdlofncreateprompt&h2000

當檔案不存在時對話方塊要提示建立檔案。該標誌自動設定cdlofnpathmustexistcdlofnfilemustexist標誌。

cdlofnexplorer&h80000

它使用類似資源管理器的開啟乙個檔案的對話方塊模板。適用於 windows 95 和 windows nt 4.0。

cdlofnextensiondifferent&h400

它指示返回的副檔名與defaultext屬性指定的副檔名不一致。如果defaultext屬性是null,或者擴充套件相匹配,或者沒有擴充套件時,此標誌不設定。當關閉對話方塊時,可以檢查這個標誌的值。

cdlofnfilemustexist&h1000

它指定只能輸入檔名文字框已經存在的檔名。如果該標誌被設定,則當使用者輸入非法的檔名時,要顯示乙個警告。該標誌自動設定cdlofnpathmustexist標誌。

cdlofnhelpbutton&h10

使對話方塊顯示幫助按鈕。

cdlofnhidereadonly&h4

隱藏唯讀核取方塊。

cdlofnlongnames&h200000

使用長檔名。

cdlofnnochangedir&h8

強制對話方塊將對話方塊開啟時的目錄置成當前目錄。

cdlofnnodereferencelinks&h100000

不要間接引用外殼鏈結(也稱作快捷方式)。預設時,選取外殼鏈結會引起它被外殼間接引用。

cdlofnnolongnames&h40000

無長檔名。

cdlofnnoreadonlyreturn&h8000

它指定返回的檔案不能具有唯讀屬性,也不能在寫保護目錄下面。

cdlofnnovalidate&h100

它指定公共對話方塊允許返回的檔名中含有非法字元。

cdlofnoverwriteprompt&h2

使「另存為」對話方塊當選擇的檔案已經存在時應產生乙個資訊框,使用者必須確認是否覆蓋該檔案。

cdlofnpathmustexist&h800

它指定只能輸入有效路徑。如果設定該標誌,輸入非法路徑時,應顯示乙個警告資訊。

cdlofnreadonly&h1

建立對話方塊時,唯讀核取方塊初始化為選定。該標誌也指示對話方塊關閉時唯讀核取方塊的狀態。

cdlofnshareaware&h4000

它指定忽略共享衝突錯誤。

action 屬性:

0沒有操作。

1顯示「開啟」對話方塊。

2顯示「另存為」對話方塊。

3顯示「顏色」對話方塊。

4顯示「字型」對話方塊。

5顯示「列印」對話方塊。

6執行 winhlp32.exe。

如何讓對話方塊中的控制項隨著對話方塊大小的改變而隨之改變

今天做乙個介面專案的時候,需要讓對話方塊開始時就最大化,但是介面上的控制項,並不會隨著對話方塊的最大化 而變大,需要我們在 中設定,網上找到的方法如下 1.首先為對話方塊類增加成員變數 話框rect,利用新舊兩個rect 的比例,來計算得到各控制項位置,具體 如下 pwnd getdlgitem i...

MFC如何使控制項大小隨著對話方塊大小自動調整

假設對話方塊類為cmydlg類,那麼首先設定乙個變數 crect m rect 用於儲存原對話方塊大小 那麼在對話方塊建立的時候先獲得對話方塊的大小 bool cmydlg oninitdialog 然後再手動新增乙個函式,用以實現具體的變化 void cmydlg changesize uint ...

MFC如何使控制項大小隨著對話方塊大小自動調整

首先明確的是windows有乙個 wm size 訊息響應函式,這個函式在對話方塊大小發生變化的時候呼叫,所以我們可以記錄下原來對話方塊的大小,還有當前對話方塊的大小 這個不用自己算,系統已給出 然後根據控制項做出相應比例的調整。比如原來對話方塊大小為a,現在為 b,原來控制項大小為 c,那麼現在的...