360 likes | 493 Views
Visual Basic 程式設計. 講師:戴志華 hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所. 第九章 圖形化使用者介面 II. CommonDialog. 新增 (參考前一章的內容) Microsoft Common Dialog Control 方法. 選擇顏色- ShowColor. 選擇顏色- ShowColor(cont’d). Private Sub form_click() Dim color As Long CommonDialog1.Flags = cdlCCRGBInit
E N D
Visual Basic 程式設計 講師:戴志華hana@arbor.ee.ntu.edu.tw 國立台灣大學電機工程研究所
CommonDialog • 新增 (參考前一章的內容) • Microsoft Common Dialog Control • 方法
選擇顏色-ShowColor(cont’d) Private Sub form_click() Dim color As Long CommonDialog1.Flags = cdlCCRGBInit CommonDialog1.ShowColor color = CommonDialog1.color Line (0, 0)-(100, 100), color, BF End Sub 注意形別,只能是Long 要設定Flag 利用color屬性取得顏色
選擇顏色-ShowColor(cont’d) • Flags--設定值
選擇字型-ShowFont(cont’d) • 執行ShowFont前,設定Flags為 • cdlCFBoth, cdlCFPrinterFonts, cdlCFScreenFonts三選一 • cdlCFEffects允許使用者使用特殊效果 • CommonDialog1.Flags = cdlCFBoth or cdlCFEffects
選擇字型-ShowFont(cont’d) • 讀取選取字型屬性 • FontSize • FontBold • FontItalic • FontUnderLine • FontName • FontStrikethru
選擇字型-ShowFont(cont’d) Private Sub form_click() CommonDialog1.Flags = cdlCFBoth or cdlCFEffects CommonDialog1.ShowFont FontSize = CommonDialog1.FontSize FontBold = CommonDialog1.FontBold FontItalic = CommonDialog1.FontItalic FontUnderline = CommonDialog1.FontUnderline FontStrikethru = CommonDialog1.FontStrikethru FontName = CommonDialog1.FontName Print "你好嗎" End Sub Form的屬性
開啟說明檔-ShowHelp • 設定Help檔檔名 • HelpFile=“檔名” • 設定開啟模式 • HelpCommand=cdlHelpKey • HelpCommand=cdlHelpContents
開啟說明檔-ShowHelp(cont’d) Private Sub form_click() CommonDialog1.HelpFile = _ "c:\winnt\help\dao35.hlp" CommonDialog1.HelpCommand = _ cdlHelpKey CommonDialog1.ShowHelp End Sub 請不要照打*^_^*
開啟檔案-ShowOpen • 出現開啟檔案對話盒 • 傳回使用者輸入(從對話盒點選)的檔案名稱(字串) • 真正開啟的動作自己做(需要其他元件) • ShowSave與ShowOpen相似
開啟檔案-ShowOpen(cont’d) • 設定Filter • Filter=“描述一|filter1|描述二|filter2……” Ex. Filter=“文字檔|*.txt|圖形檔|*.gif;*.jpg” • 取得檔名 • FileTitle • 取得完整檔名 • FileName
開啟檔案-ShowOpen(cont’d) • Private Sub form_click() CommonDialog1.Filter = "圖形檔|*.gif;*.jpg;*.jpeg" CommonDialog1.ShowOpen Print CommonDialog1.FileTitle Print CommonDialog1.FileName End Sub
開啟檔案-ShowOpen(cont’d) • FilterIndex • InitDir • DialogTitle
StatusBar • 新增 • MicroSoft Windows Common Controls • 按右鍵屬性增加Panel
StatusBar(cont’d) 指定順序
StatusBar(cont’d) • Alignment • sbrLeft 置左 • sbrRight置右 • sbrCenter置中 • Bevel • sbrNoBevel平 • sbrInset凹 • SbrRaised凸
StatusBar(cont’d) • Style • sbrText • sbrDate • sbrTime • sbrCaps • sbrNum • sbrIns • sbrScrl 顯示特殊鍵狀態
StatusBar(cont’d) • AutoRaise • sbrNoAutosizeNo Autosizing • sbrSpring彈簧(Extra space divided among panels) • sbrContents依內容調整大小
StatusBar(cont’d) Private Sub form_click() StatusBar1.Panels(1).Text = "你好嗎" End Sub Panel的陣列,從1開始……
ImageList • 按右鍵屬性
ToolBar • 按右鍵屬性 • 在「一般」中,設定ImageList • 也可設定DisabledImageList • 內定值,變灰
ToolBar(cont’d) 指定 ImageList
ToolBar(cont’d) 指定圖示 指定順序
ToolBar(cont’d) • Style • tbrDefault • tbrSeparator空白 • tbrButtonGroup一次只能選一個 • 事件處理函式 • Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
ToolBar(cont’d) 共有7個按鈕
ToolBar(cont’d) Private Sub Form_click() Toolbar1.Buttons(1).Enabled = False End Sub Private Sub Toolbar1_ButtonClick(ByVal _ Button As MSComctlLib.Button) Select Case Button.Index Case 1 Call …… Case 2 Call …… End Sub 是不是和Windows處理 事件的流程很像呢?
ToolBar(cont’d) • Private Sub Toolbar1_ButtonMenuClick(ByVal ButtonMenu As MSComctlLib.ButtonMenu) Select Case ButtonMenu.Key Case "Document“ Call mnuFileNewDocument Case "Image" Call mnuFileNewImage End Select End Sub
Try It! 方形 圓形 紅 綠 藍
Private Sub Toolbar1_ButtonClick(ByVal _ Button As MSComctlLib.Button) Dim color As Long If (Toolbar1.Buttons(4).Value = _ tbrPressed) Then color = vbRed ElseIf (Toolbar1.Buttons(5).Value = _ tbrPressed) Then color = vbGreen ElseIf (Toolbar1.Buttons(6).Value = _ tbrPressed) Then color = vbBlue End If
Select Case Button.Index Case 1 Cls DrawBox (color) Case 2 Cls DrawCircle (color) End Select End Sub Private Sub DrawBox(color As Long) Line (50, 50)-(100, 100), color, BF End Sub Private Sub DrawCircle(color As Long) Circle (50, 50), 50, color End Sub