第 12 章 視窗介面進階.

Slides:



Advertisements
Similar presentations
第2章第2章 第 1 节 生物与非生物. [ 猜谜语 ] 名字叫做牛, 不会拉犁头; 说我力气小, 背着房子走。 ( 打一动 物)
Advertisements

猜谜语 有个小娃娃,真是没 礼貌。 见到小树摇一摇,吓 得树叶哇哇叫。 见到小花逗一逗,摘 去她的太阳帽。 没人和它交朋友,只 好自已到外处跑。
急性腹痛 急性疼痛. 急性疼痛 — 孙树杰、沈洪、 刘保池 (1)(1)(1)(1) 概 述 (2)(2)(2)(2) 重症急性腹痛的临床特点 (3)(3)(3)(3) 急性腹痛的分类及诊治 主要教学内容.
职业指导服务系统 欢迎了解职业指导服务系统!
黄帝内经 内经教研室 王黎.
第二章 VB的编程机制 【授课时间】第3周,第2次课 【授课题目】 2.1 面向对象程序设计概述 2.2 VB中的对象
多媒体技术 模块1 多媒体技术基础.
职官与科举 职官:在国家机构中担任一定职务的官吏,这里面有职官的名称、职权范围和品级地位等方面的内容。
花开有日 芬芳天下 “国培计划(2012)” ——幼儿园骨干教师远程培训项目 山东幼儿园教师8班第4期简报 主办人:张瑞美     
《卖火柴的小女孩》 《海的女儿》 你 认 识 这 些 图 片 的 故 事 吗 《丑小鸭》 《拇指姑娘》 它们都来自于哪位作家笔下?
民主國家的政府體制 我國的中央政府體制 我國中央政府的功能 地方政府組織與功能
可爱的蜗牛 一、蜗牛冬眠 二、蜗牛进食 三、蜗牛排泄 四、蜗牛呼吸.
銷售與顧客關係管理 巫立宇.邱志聖 著.
中国特色社会主义政党制度 主讲:西南大学 李强 2011年12月28日.
活力校園 5C 顏慧玲.
郭娜 上海电影艺术职业学院 多媒体设计与制作专业
提高自身素质做好 新时期班主任工作 北京市广渠门中学 高金英.
20、豆花庄的小家伙们.
WINDOWS98资源管理器教案 一、   教学目标 1、知识目标:掌握资源管理器的结构;通过资源管理器掌握利用左键和右键的拖动完成文件及文件夹的复制和移动这两个操作;能分别使用左键和右键进行这两种操作,且能区分左键和右键的不同。
良心處方 Click to start..
記憶翻翻樂大考驗 一起來認識各種車車吧!.
欢迎南京市政治学科的教研同仁 光临指导.
普通话模拟测试 与学习平台 使用指南.
CH11 心理疾病 李志鴻.
北京教育资源服务平台培训 2008年3月13日.
华 夏 之 祖 第 3 课.
法學緒論第六單元:法律適用 設計課程︰ 財經法律系 --楊東連 法學緒論-6.
Visual Basic 2005學習範本 第5章 選擇結構.
1.了解VB6.0的功能特点 、集成环境。 2.理解面向对象程序设计的几个概念。 3.掌握VB应用程序设计的步骤。
網路小說劇情建構與伏線營造 Windows98.
林业工作站岗位培训在线学习平台 使用方法 林业站 马廷贵
CH1 . 集 合 与 命 题.
14 繪圖與動畫 [我的小畫家][打磚塊遊戲] 14-1 繪圖的基礎 14-2 滑鼠事件與基本繪圖 14-3 在Bitmap物件繪圖
Powerpoint的使用技巧 信息咨询部 华中农业大学图书馆.
关于整合检验检测认证机构实施意见的通知(国办发〔2014〕8号)
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
Ch19 創業精神 管理學:整合觀點與創新思維3/e.中山大學企管系 著.前程文化 出版.
Visual Basic 期中報告 組長:沈亞臻 組員:蔣佳育 張庭茹
推进德育创新 做好新时期班主任工作 北京市广渠门中学 高金英.
以考试说明带动二轮复习 福州第三中学 张璐.
百分率的應用 折扣 李德耀 一九九九年十月 科目: 數學科 單元: 百分率的應用 年級: 六年級上學期
跨越海峡的生命桥.
程式簡介、VB、物件導向 國立北門高中 林明璋.
進階輸出入元件(一) 本書第三章已介紹Form 、Label 、Edit 及Button 等最基本的輸出入元件, 本章將繼續介紹一些可以提昇輸出入視覺效果的元件, 例如CheckBox 、RadioButton 及RadioGroup 等17 個進階元件, 學習本章將可提昇使用介面的親和性。 核對框(CheckBox)
第 11 章 繪圖與多媒體.
課程名稱:程式設計 授課老師:________
第九章 常用控制項(ㄧ) 資訊教育研究室 編著 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
Chapter 1 複習.
页眉 基础综合 C++ Builder 按钮组件
第18章 B4J的跨平台應用程式開發 18-1 B4J的GUI設計工具與介面控制項 18-2 使用B4J的介面控制項
Visual Basic程序设计基础 计算机科学学院.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
第10章 視窗應用程式的工具列與功能表.
第五章 Windows窗体界面设计 5.1 鼠标事件与键盘事件 5.2 Windows窗体基本控件 5.3 菜单与工具栏
程式設計 Visual Basic簡介 週次:1 建國技術學院 資管系 饒瑞佶 2003年9月17日.
Ch03 基本輸出入介面設計 視窗程式設計 授課教師:王大瑾.
◆ 第4節 駐 波 一、駐波 二、兩端固定之弦的駐波 三、一端固定、一端為自由端之弦的駐波 範例 1 範例 2 範例 3 範例 4 範例 5
第二章 创建用户界面 本章重点和难点 2.1 基本属性 2.2 创建窗体 2.3 Visual Basic的常用控件 2.4 制作菜单.
MS Windows XP 作業系統使用操作簡介.
菜单、状态栏和工具栏 菜单 状态栏 工具栏 编写代码 创建用户界面 Debug and Deploy 使用 Visual
VB语言程序设计教程.
第 11 章 功能表列與工具列的設計 & 第 10 章 檔案.
Visual Basic 程序设计及应用教程 (6.0版)
如何制订幼儿园园本培训工作计划 大连亿达世纪城幼儿园 姜承华 2011年3月10日.
Print方法和函数 2019/5/19.
Visual C# 程序设计 第1章 Visual C#概述 第2章 C#语法基础 第3章 顺序结构程序设计 第4章 选择结构程序设计
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年11月1日.
GUI Title and GUI Status
GUI Title and GUI Status
MenuStrip by Szeto CY Visual C# 2008.
Presentation transcript:

第 12 章 視窗介面進階

本章重點提要 12-1 功能表設計基礎 12-2 功能表視覺效果 12-3 快顯功能表 12-4 工具列 12-5 狀態列

本章閱讀建議 本章將介紹功能表、工具列、狀態列等控制項, 這些控制項都可提供更豐富的圖形使用者介面。 12-1 功能表設計基礎:我們先從如何建立功能表開始, 一步步說明如何建立能執行特定功能的功能表命令。

本章閱讀建議 12-2 功能表的視覺效果:學會設計功能表後, 本節進一步介紹一些功能表效果的使用及處理方法。 12-3 快顯功能表:快顯功能表的用法基本上承襲自一般的功能表, 看過前兩節後, 再看本節應是輕鬆愉快。

本章閱讀建議 12-4 工具列:工具列雖和功能表長得不太一樣, 但其實它們的用法非常相似。 12-5 狀態列:看過功能表和工具列後, 我們再介紹也是常見於一般應用程式的狀態列, 讓讀者認識如何將要傳達給使用者的資訊,顯示在狀態列中。

12-1 功能表設計基礎 功能表算是 Windows 應用程式的基本介面之一, 雖然大家用得都很習慣了, 但可能仍不瞭解功能表的組成。以下我們先由程式設計的觀點, 好好認識一下功能表。

功能表設計基礎 我們可將功能表內容分成主功能表、子功能表、功能表命令等三種:

功能表設計基礎 例如上面圖中的主功能表, 就有檔案、編輯、檢視...等子功能表,而檔案子功能表下則有新增、開啟、關閉... 等子功能表或功能表命令;而新增子功能表則有專案、檔案兩個功能表命令。 要在表單中加入主功能表, 需使用 控制項, 以下我們就來練習建立如下的功能表內容:

功能表設計基礎 在表單中建立功能表。 建立新專案 Ch12-01, 加入一個 控制項, 也加入一個 控制項, 如下圖:

功能表設計基礎 用滑鼠在功能表中的 按一下, 即可輸入第1 個子功能表, 請輸入『樣式』:

功能表設計基礎 在樣式功能表中加入 3 個功能表命令:一般、粗體、斜體, 建立的方式和剛才類似:

功能表設計基礎

功能表設計基礎

功能表設計基礎 接著按 將專案存檔 ( 因根據測試, 輸入數字功能表命令時, 偶爾會使 VB 意外終止, 故建議先存檔再進行下一步驟)。 接著以同樣的方法, 在主功能表建立另一個大小子功能表, 並輸入如下內容:

功能表設計基礎 由於『ToolStripMenuItem 數字編號』名稱較不易辨識它是什麼命令, 最好將它改成其它有意義的文字, 在此我們就將之更名為『Size9』、『Size18』、『Size27』:

功能表設計基礎 按[F5] 鍵執行程式, 雖然尚未替各功能表命令撰寫程式,但我們可先測試功能表本身是否可運作:

處理功能表命令 在剛才建立功能表的過程可發現, 子功能表和功能表命令也都是控制項, 它們是使用 ToolStripMenuItem 控制項建立的, 但此控制項未列在工具箱中。當使用者在功能表中選擇了某個命令時, 會觸發該控制項的 Click 事件, 因此我們只需在程式中加入各命令控制項的 Click 事件程序, 就能讓命令發揮功效。

處理功能表命令 以剛才建立的功能表為例, 我們想做的是由功能表改變 Label 控制項的文字樣式和大小。此時可利用如下方式建立新的字型物件, 並指定給控制項的 Font 屬性:

處理功能表命令 第一個 Font() 方法已在第 6 章介紹過, 至於第 2 個只有 2 個參數的版本, 其參數是字型物件和新的字型樣式, 因此第 2 個方法適用於修改現有字型樣式的場合, 例如:

處理功能表命令 我們就在功能表命令事件程序中利用兩種方式來建新字型, 並設定給控制項的 Font 屬性, 即可達到『執行功能表命令, 即變更控制項字型』的效果。

處理功能表命令 建立功能表命令的 Click 事件程序, 並在程序中變更控制項字型樣式或大小。 開啟剛才建立的專案 Ch12-01。

處理功能表命令

處理功能表命令 在新建的事件程序中輸入如下程式: 以同樣方式建立 、 功能表命令的 Click 事件程序, 並輸入如下程式:

處理功能表命令

處理功能表命令 至於 功能表中調整字型大小的命令, 則是用 3 個參數的 Font() 方法建立指定大小的字型, 並設定給 Label1 控制項。請分別建立 3 個字型尺寸命令的 Click 事件處理程序, 並輸入如下的程式碼:

處理功能表命令

處理功能表命令 按[F5] 鍵執行程式, 即可利用功能表中的命令, 改變字型的樣式或大小:

處理功能表命令 請替剛才的範例專案加入可讓標籤文字加上底線的命令。 在樣式功能表中新增一個加底線命令。 建立其 Click 事件程序, 並輸入如下程式碼:

12-2 功能表視覺效果 除了單純列出功能表命令外, 功能表也可呈現不同的風貌, 例如在VB 中就會看到如下的功能表內容:

分隔線與便捷鍵 分隔線與便捷鍵都是在輸入表單命令時, 即可直接輸入產生: 分隔線:在 中輸入功能表命令名稱時, 若只輸入一個 ‘-’ 符號, 該項目就會變成分隔線。附帶說明, 分隔線也是一個 ToolStripMenuItem 控制項。 便捷鍵:在輸入功能表命令時, 加入 “&” 符號及按鍵字元, 該字元就會自動變成可搭配[Alt] 鍵使用的便捷鍵。

分隔線與便捷鍵 以下我們就用一個可由功能表命令將表單放大或縮小的簡單程式,來練習在功能表中加入分隔線與便捷鍵。

分隔線與便捷鍵 實作具有分隔線與便捷鍵的命令。 建立新專案 Ch12-02, 並加入一個 MenuStrip 控制項。

分隔線與便捷鍵 在 上按一下, 輸入如下命令:

分隔線與便捷鍵

分隔線與便捷鍵 依同樣方式繼續輸入如下命令:

分隔線與便捷鍵 接著我們要建立分隔線, 只要輸入一個 "-" 符號就可以了:

分隔線與便捷鍵

分隔線與便捷鍵 我們要用功能表命令將表單放大或縮小, 只需在其事件程序中修改表單物件的 Width、Height 屬性即可, 請分別建立三個命令的 Click 事件程序, 並輸入如下程式:

分隔線與便捷鍵

分隔線與便捷鍵 按[F5] 執行程式, 測試功能表的便捷鍵:

勾選、淡化與快速鍵 前面設定分隔線、便捷鍵時, 都是直接輸入命令內容即可。但像功能表命令的勾選、淡化效果, 以及快速鍵功能, 則都是透過ToolStripMenuItem 的屬性來設定: Checked 屬性:此屬性為 True 時, 命令前面就會出現打勾符號 ;預設值為 False, 亦即沒有打勾符號。 Enabled 屬性:預設值為 True, 表示功能表可使用;設為False 即為淡化且無法選取。

勾選、淡化與快速鍵 ShortcutKeys 屬性:此屬性需使用上一章介紹過的 Keys類別來指定執行命令的按鍵或按鍵組合, 例如: 不過我們不必硬記按鍵名稱, VB 已提供選擇介面供我們設定此屬性 (後詳)。

勾選、淡化與快速鍵 建立含如下功能表的畫圓程式, 功能表具勾選、淡化與快速鍵等效果。

勾選、淡化與快速鍵 建立新專案 Ch12-03, 並加入如下功能表。

勾選、淡化與快速鍵 接著我們要透過ShortcutKeys 屬性來設定功能表命令的快速鍵, 請先在 命令上按一下, 然後再按屬性窗格中ShortcutKeys 屬性旁的 鈕, 就會出現如下設定畫面:

勾選、淡化與快速鍵 在屬性窗格中出現的面板可設定快速鍵的按鍵組合, 上半部的 、 、 是快速鍵按鍵組合中需同時按下的按鍵, 下半的下拉式選單則是要搭配的按鍵名稱。例如勾選 再於下拉式選單中選 , 表示快速鍵為[Ctrl]+[A] 。在此為方便對照, 我們就將 命令的快速鍵設為[F1] :

勾選、淡化與快速鍵

勾選、淡化與快速鍵

勾選、淡化與快速鍵 依同樣方式將 的快速鍵設為[F2] 、 的快速鍵設為[F4] 、 的快速鍵設為[F8] 。 接著開始做程式的處理。我們要讓程式畫出圓形的圖案,所以請先建立表單的 Paint 事件程序, 並在程序外宣告一個記錄圓形直徑 ( 即外接矩形的寬度) 的表單變數 Diameter, 以便在功能表命令的事件程序中, 也能修改圓形的直徑大小, 達到將圓形變大變小的效果。

勾選、淡化與快速鍵

勾選、淡化與快速鍵

勾選、淡化與快速鍵 在各命令的 Click 事件程序中, 所要做的就是更改圓形的直徑, 並請表單重繪, 因此請建 、 、 、 的事件程序, 並分別輸入如下的程式碼:

選、淡化與快速鍵

選、淡化與快速鍵 最後要利用程式來處理命令的打勾及淡化效果, 這些工作可放在功能表的 DropDownOpening 事件程序。此事件會在功能表被開啟時觸發, 所以只要在其事件程序中將該打勾的命令打勾、該淡化的淡化, 使用者就會看到相關效果。請由屬性窗格建立尺寸ToolStripMenuItem 控制項的 DropDownOpening 事件程序:

選、淡化與快速鍵

選、淡化與快速鍵 在剛剛建立的事件程序中輸入如下程式:

選、淡化與快速鍵

選、淡化與快速鍵 一般應用程式較少讓某個功能表命令同時被打勾及淡化, 此處為了練習及示範, 所以讓功能表命令同時被打勾及淡化。 按[F5] 鈕執行程式, 可用快速鍵或用滑鼠選取功能表命令, 即可看到勾選及淡化效果:

選、淡化與快速鍵

12-3 快顯功能表 快顯功能表 (Context Menu) 就是指按下滑鼠右鈕時所出現的功能表:

快顯功能表 其建立方式和前兩節介紹的一般功能表大同小異, 使用的技巧也差不多, 主要的差異有以下兩點: 建立快顯功能表時, 是使用 控制項, 而非一般功能表所用的 控制項。 要讓表單或控制項『擁有』快顯示功能表, 需設定其ContextMenu 屬性。例如要讓使用者於表單中按滑鼠右鈕時顯示快顯功能表, 就需設定表單的 ContextMenuStrip 屬性。

快顯功能表 建立含如下快顯功能表的應用程式, 使用者可由快顯功能表中的命令變更表單內顯示的顏色。

快顯功能表 建立新專案 Ch12-04, 並加入一個 控制項。

快顯功能表 選取表單, 並將ContextMenuStrip 屬性設為剛才建立的 ContextMenuStrip1 控制項。

快顯功能表 程式要做的是根據使用者在快顯功能表中所選的顏色, 塗滿表單工作區, 所以我們建立 Paint 事件程序, 並建立一個記錄所選顏色的 myColor 表單變數:

快顯功能表 快顯功能表中的 3 個命令, 分別可改變填滿表單所用的顏色, 所以分別建立 3 個命令的 Click 事件程序, 並加入如下的程式:

快顯功能表 快顯功能表中的命令同樣可有淡化、勾選等各種效果, 不過上一節對一般功能表是用 DropDownOpening 事件程序, 對快顯功能表則要改用 Opening 事件程序 (Opening 事件是快顯功能表正要被顯示時所觸發的事件)。請建立快顯功能表的 Opening事件程序, 並輸入如下程式來設定勾選的效果:

快顯功能表 按[F5] 鍵執行程式, 在表單中按滑鼠右鈕即可開啟快顯功能表, 並選擇顏色:

12-4 工具列 在一般應用程式中, 工具列通常是位於主功能表之下, 內含按鈕或其它控制項, 提供使用者另一種便利的操作介面。工具列是用 控制項建立, 之後則可加入工具按鈕, 作法類似於在功能表加入功能表命令。

工具列 我們先將前一章以 Windows Media Player 控制項建立的媒體播放程式, 改成使用工具列的按鈕來控制, 讓讀者熟悉工具列的基本用法:

工具列 使用 控制項建立工具列, 並在工具列上佈置按鈕。 使用 控制項建立工具列, 並在工具列上佈置按鈕。 建立新專案 Ch12-05, 並加入一個 控制項,以及 控制項 ( 若工具箱沒有此控制項, 請參考 11-43 頁新增之):

工具列

工具列 工具列預設沒有任何按鈕, 可採如下的步驟新增工具鈕:

工具列 工具列按鈕預設使用的圖案為 , 我們必須自行提供圖案更換:

工具列

工具列

工具列

工具列

工具列 工具按鈕的類別為 ToolStripButton, 我們可像一般控制項修改其Name、Text ( 但文字預設不會顯示) 等屬性。例如我們可將剛才建立的按鈕名稱 (Name) 設為 "StartButton"。此外還有一項實用的屬性TooltipText, 此屬性代表滑鼠指標移到按鈕上時,自動顯示的『提示文字』:

工具列

工具列 請用同樣的方式加入第 2 個按鈕, 並以圖檔 Stop.bmp 當成按鈕圖案, 同時將其 (Name) 屬性設為 "StopButton"、TooltipText 屬性設為 " 停止":

工具列 工具按鈕被按下時也是觸發 Click 事件, 我們只要在 VB中, 於按鈕上雙按, 就會建立其 Click 事件程序。請建立 的Click 事件程序, 並輸入如下程式:

工具列

工具列 接著建立 的 Click 事件程序, 並輸入如下程式: 按[F5] 執行程式, 接著即可用工具列上的按鈕播放音樂,或停止播放了。

工具列 請替剛才建立的工具列加入一個暫停播放的按鈕, 讓使用者可暫停播放音樂。 在工具列上新增一個按鈕, 並將其 ( N a m e ) 屬性設為"PauseButton"。 建立 PauseButton 的 Click 事件程序, 並輸入如下程式碼:

12-5 狀態列 狀態列 (Status Bar) 也是許多應用程式會用到的使用者介面, 一般都會用狀態列來顯示應用程式的相關資訊、提示訊息等等。 在 VB 中, 要建立狀態列需使用 控制項, 其用法和主功能表、工具列相似, 加入表單後只是一個空的狀態列, 我們必須加入附屬的控制項, 才能在狀態列中顯示資訊。

狀態列 在播放程式中加入狀態列, 顯示目前播放進度 (時間) 以及檔案名稱。

狀態列 請開啟範例專案 Ch12-06 來練習:

狀態列 雙按工具箱中的 將狀態列加到表單中, 此控制項的 Dock 屬性預設值為 Bottom, 因此會自動列在表單最下方:

狀態列 狀態列中最常見的應用就是顯示文字訊息, 所以請依如下方式在狀態列加入一個 ToolStripStatusLabel 控制項, 並將其(Name) 屬性設為 "FileName"、 Text 屬性設為 " " (一個空白字元):

狀態列

狀態列 由於我們要顯示播放進度和檔案名稱, 所以再建立另一個 ToolStripStatusLabel 控制項, 並將 (Name) 屬性改為"PlayingTime"、Text 屬性設為 " " ( 一個空白字元):

狀態列 要顯示播放進度, 必須隨著播放的狀況, 定時更新狀態列上的進度文字, 所以請再加入一個 控制項:

狀態列 雙按 進入其 Click 事件程序, 這次要加入啟動計時器的相關程式, 以及在狀態列顯示檔名的程式碼:

狀態列 在 鈕的 Click 事件程序, 也同樣要有停止計時器的相關程式:

狀態列 最後我們要建立計時器 Timer1 的 Tick 事件程序, 我們要利用此事件定時更新狀態列上顯示的播放進度, 並顯示在狀態列的中。播放進度字串, 可直接由 AxWindowsMediaPlayer1.Ctlcontrols 的 currentPositionString 屬性取得:

狀態列 按[F5] 鍵執行程式, 按 鈕開始播放, 在狀態列上就會顯示播放的進度了。