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