使用CommonDialog控件
CommonDialog控件提供諸如打開和保存文件、設置打印選項、選擇顏色和字體等操作的一組標准對話框。運行 Windows 幫助引擎時,控件還能夠顯示幫助。
CommonDialog控件在Visual Basic和 Microsoft Windows 動態連接庫Commdlg.dll 例程之間提供了接口。為了用該控件創建對話框,必須要求Commdlg.dll 在 Microsoft Windows \System 目錄下。
為了在應用程序中使用 CommonDialog控件,應將其添加到窗體上並設置屬性。控件顯示的對話由控件的方法決定。運行時,調用相應方法後將顯示對話框或執行幫助引擎;設計時在窗體上將 CommonDialog控件顯示成一個圖標。此圖標的大小不能改變。
CommonDialog控件可以顯示如下常用對話框:
“打開”
“另存為”
“顏色”
“字體”
“打印”
要使用 CommonDialog控件
1. 若未添加 CommonDialog控件,則應從“工程”菜單中選定“部件”,將控件添加到工具箱中。在標記對話的“控件”中找到並選定控件,然後單擊“確定”按鈕。
2. 單擊工具箱中的“CommonDialog”控件並在窗體上繪制該控件。在窗體上繪制 CommonDialog控件時,控件將自動調整大小。象 Timer控件一樣,CommonDialog控件在運行時不可見。
3. 運行時,請適當使用下表所列方法顯示需要的對話。
顯示“打開”和“另存為”對話框
有了“打開”對話框就可指定驅動器、目錄、文件擴展名和文件名。“另存為”對話框在外觀上與“打開”對話框相同,只是對話框的標題和文件名是暗淡的。運行時選定文件並關閉對話框後,可用 FileName 屬性獲取選定的文件名。
要顯示“打開”對話框
1. 指定在“文件類型”列表框中顯示的文件過濾器列表。
可用下列格式設置 Filter 屬性:
description1 | filter1 | description2 | filter2...
Description 是列表框中顯示的字符串——例如,"Text Files (*.txt)"。Filter 是實際的文件過濾器─—例如,"*.txt"。每個description | filter 設置間必須用管道符號分隔 (|)。
2. 用 ShowOpen 方法顯示對話框。
選定文件後可用 FileName 屬性獲取選定文件的名稱。
對所有公共對話框,當 CancelError 屬性為 True,而且用戶單擊了對話框的“取消”按鈕時將生成一個錯誤。在顯示對話框時捕獲錯誤,以此檢測是否按了“取消”按鈕。
下列代碼顯示“打開”對話框並以選定的文件名為打開文件過程的參數:
Private Sub mnuFileOpen_Click ()
'CancelError 為 True。
On Error GoTo ErrHandler
'設置過濾器。
CommonDialog1.Filter = "All Files (*.*)|*.*|Text _
Files (*.txt)|*.txt|Batch Files (*.bat)|*.bat"
'指定缺省過濾器。
CommonDialog1.FilterIndex = 2
'顯示“打開”對話框。
CommonDialog1.ShowOpen
'調用打開文件的過程。
OpenFile (CommonDialog1.FileName)
Exit Sub
ErrHandler:
'用戶按“取消”按鈕。
Exit Sub
End Sub
使用“顏色”對話框
可用“顏色”對話框在調色板中選擇顏色,或者創建並選定自定義顏色。運行時,選定顏色並關閉對話框後可用 Color 屬性獲取選定的顏色。
要顯示“顏色”對話框
1. 將CommonDialog控件的Flags屬性設置成Visual Basic常數cdlCCRGBInit。
2. 用 ShowColor 方法顯示對話框。
可用 Color 屬性獲取選定顏色的 RGB 值。單擊“Command1”命令按鈕時,下列代碼將顯示“顏色”對話框:
Private Sub Command1_Click ()
'將 Cancel 設置成 True。
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
'設置 Flags 屬性。
CommonDialog1.Flags = cdlCCRGBInit
'顯示“顏色”對話框。
CommonDialog1.ShowColor
'將窗體的背景顏色設置成選定的'顏色。
Form1.BackColor = CommonDialog1.Color
Exit Sub
ErrHandler:
'用戶按了“取消”按鈕。
Exit Sub
End Sub
使用“字體”對話框
“字體”對話框根據大小、顏色、樣式選擇字體。用戶一旦在“字體”對話框中選定字體後,下列屬性就會包含有關用戶選項的信息。
要顯示“字體”對話框
1. 將 Flags 屬性設置為下述Visual Basic常數之一:
cdlCFScreenFonts(屏幕字體)
cdlCFPrinterFonts(打印機字體)
cdlCFBoth(既可以是屏幕字體又可以是打印機字體)
警告 在顯示“字體”對話框之前必須將 Flags 屬性設置為這些數值之一,否則將發生字體不存在錯誤。
2. 用 ShowFont 方法顯示對話框。
下列代碼根據用戶在“字體”對話框中的選擇來設置文本框的字體屬性:
Private Sub Command1_Click ()
'將 Cancel 設置成 True。
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
'設置 Flags 屬性。
CommonDialog1.Flags = cdlCFBoth Or cdlCFEffects
'顯示“字體”對話框。
CommonDialog1.ShowFont
'根據用戶的選擇來設置文本屬性。
Text1.Font.Name = CommonDialog1.FontName
Text1.Font.Size = CommonDialog1.FontSize
Text1.Font.Bold = CommonDialog1.FontBold
Text1.Font.Italic = CommonDialog1.FontItalic
Text1.Font.Underline = CommonDialog1.FontUnderline
Text1.FontStrikethru = CommonDialog1.FontStrikethru
Text1.ForeColor = CommonDialog1.Color
Exit Sub
ErrHandler:
'用戶按了“取消”按鈕。
Exit Sub
End Sub