第10章MDI窗體和菜單_第1頁
第10章MDI窗體和菜單_第2頁
第10章MDI窗體和菜單_第3頁
第10章MDI窗體和菜單_第4頁
第10章MDI窗體和菜單_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、第第1010章章 MDIMDI窗體和菜單窗體和菜單 在在Visual Basic中窗體可以分為單文檔界面(中窗體可以分為單文檔界面(SDI)和多)和多 文檔界面(文檔界面(MDI)兩大類。前面介紹的應用程序設計都是基)兩大類。前面介紹的應用程序設計都是基 于單文檔界面的。菜單是用戶界面最重要的元素之一,菜單于單文檔界面的。菜單是用戶界面最重要的元素之一,菜單 使得用戶界面更加友好、直觀。本闡將介紹使得用戶界面更加友好、直觀。本闡將介紹MDI應用程序的應用程序的 創(chuàng)建和應用以及菜單的創(chuàng)建和應用。創(chuàng)建和應用以及菜單的創(chuàng)建和應用。 10.1 MDI10.1 MDI界面概述界面概述 多文檔界面(多文檔

2、界面(MDI)允許創(chuàng)建在單個容器窗體中包含)允許創(chuàng)建在單個容器窗體中包含 多個窗體的應用程序。多個窗體的應用程序。 10.2 MDI10.2 MDI應用程序的創(chuàng)建和使用應用程序的創(chuàng)建和使用 一個應用程序中只能有一個一個應用程序中只能有一個MDI窗體,如果工程中已窗體,如果工程中已 經(jīng)有一個經(jīng)有一個MDI窗體,則該工程上的添加窗體,則該工程上的添加MDI窗體選項將無效窗體選項將無效 。 10.2.1 MDI10.2.1 MDI應用程序的創(chuàng)建應用程序的創(chuàng)建 要創(chuàng)建要創(chuàng)建MDI應用程序,在創(chuàng)建了標準應用程序,在創(chuàng)建了標準EXE工程后,再工程后,再 添加添加MDI窗體。要為工程添加窗體。要為工程添加M

3、DI窗體,可以從窗體,可以從“工程工程”|“ 添加添加MDI窗體窗體”命令直接添加,也可以通過在工具窗口的工命令直接添加,也可以通過在工具窗口的工 程名上單擊右鍵,在彈出的右鍵菜單上選擇程名上單擊右鍵,在彈出的右鍵菜單上選擇“添加添加MDI窗體窗體 ”選項。選項。 10.2.2 10.2.2 使用使用MDIMDI窗體及其子窗體窗體及其子窗體 當當MDI應用程序在一次會話中要打開、保存和關閉幾個應用程序在一次會話中要打開、保存和關閉幾個 子窗體時,應當做到引用活動窗體和保持關于子窗體的狀態(tài)子窗體時,應當做到引用活動窗體和保持關于子窗體的狀態(tài) 信息。信息。 一個一個MDI應用程序中可以有同一子窗體

4、的多個實例,如應用程序中可以有同一子窗體的多個實例,如 果需要知道使用的是哪一個窗體,使用果需要知道使用的是哪一個窗體,使用MDI窗體的窗體的 ActiveForm屬性,該屬性可以返回具有焦點的或者最后被激屬性,該屬性可以返回具有焦點的或者最后被激 活的子窗體?;畹淖哟绑w。 在在MDI應用程序中,加載子窗體時,其父窗體(應用程序中,加載子窗體時,其父窗體(MDI窗窗 體)會自動加載并顯示,但在加載體)會自動加載并顯示,但在加載MDI窗體時,其子窗體并窗體時,其子窗體并 不會自動加載。利用不會自動加載。利用AutoShowChildren屬性可用來在屬性可用來在MDI窗窗 體加載時自動顯示或自動

5、隱藏子窗口,也可以在運行時通過體加載時自動顯示或自動隱藏子窗口,也可以在運行時通過 Show方法來顯示子窗口。在使用方法來顯示子窗口。在使用Show方法顯示子窗體時可方法顯示子窗體時可 以更新其標題、位置和菜單等操作。以更新其標題、位置和菜單等操作。 10.2.3 MDI10.2.3 MDI窗體實例窗體實例 本實例將演示在本實例將演示在MDI應用程序中如何創(chuàng)建子窗體,并應用程序中如何創(chuàng)建子窗體,并 動態(tài)修改新創(chuàng)建的子窗體的標題以及一些其它的屬性。動態(tài)修改新創(chuàng)建的子窗體的標題以及一些其它的屬性。 10.3 10.3 菜單菜單 菜單是用戶界面最重要的元素之一。在菜單是用戶界面最重要的元素之一。在W

6、indows環(huán)境環(huán)境 下,通過窗體菜單來實現(xiàn)復雜的操作具有快捷、安全的明顯下,通過窗體菜單來實現(xiàn)復雜的操作具有快捷、安全的明顯 優(yōu)勢。如果一個比較大的應用程序的用戶界面中沒有菜單,優(yōu)勢。如果一個比較大的應用程序的用戶界面中沒有菜單, 就會讓使用者有無從下手的感覺。就會讓使用者有無從下手的感覺。 10.3.1 10.3.1 菜單概述菜單概述 菜單的基本作用是提供人機對話界面,便于用戶選擇菜單的基本作用是提供人機對話界面,便于用戶選擇 應用程序的各種功能,管理應用系統(tǒng),控制各咱功能模塊的應用程序的各種功能,管理應用系統(tǒng),控制各咱功能模塊的 運行。菜單可以分為下拉式菜單和彈出式菜單兩種基本類型運行。

7、菜單可以分為下拉式菜單和彈出式菜單兩種基本類型 。關于菜單有以下幾個基本概念是需要掌握的。關于菜單有以下幾個基本概念是需要掌握的。 菜單欄:菜單欄: 菜單標題:菜單標題: 菜單項:菜單項: 快捷菜單:快捷菜單: 菜單的狀態(tài):菜單的狀態(tài): 菜單項的訪問鍵和快捷鍵:菜單項的訪問鍵和快捷鍵: 10.3.2 10.3.2 菜單編輯器菜單編輯器 在在Visual Basic中,菜單通過菜單編輯器來建立。用戶中,菜單通過菜單編輯器來建立。用戶 可以把菜單項作為一個控件來處理,使用菜單編輯器來設計可以把菜單項作為一個控件來處理,使用菜單編輯器來設計 菜單的過程就是對菜單項屬性設置的過程。菜單的過程就是對菜單

8、項屬性設置的過程。 10.3.3 10.3.3 用菜單編輯器創(chuàng)建菜單用菜單編輯器創(chuàng)建菜單 利用菜單編輯器創(chuàng)建菜單的詳細步驟如下:利用菜單編輯器創(chuàng)建菜單的詳細步驟如下: (1)選取要添加菜單欄的窗體。)選取要添加菜單欄的窗體。 (2)選擇)選擇“工具工具”|“菜單編輯器菜單編輯器”命令,或者在標準命令,或者在標準 工具欄中單擊工具欄中單擊“菜單編輯器菜單編輯器”按鈕,顯示菜單編輯器。按鈕,顯示菜單編輯器。 (3)在)在“標題標題”文本框中,為第一個菜單標題鍵入在文本框中,為第一個菜單標題鍵入在 菜單欄上顯示的文本,即設置菜單控件的菜單欄上顯示的文本,即設置菜單控件的Caption屬性。菜屬性。菜

9、 單標題文本會顯示在菜單控件列表框中。單標題文本會顯示在菜單控件列表框中。 (4)在)在“名稱名稱”文本框中,輸入將用來在代碼中引用文本框中,輸入將用來在代碼中引用 該菜單控件的名字,即設置菜單控件的該菜單控件的名字,即設置菜單控件的Name屬性。屬性。 (5)單擊)單擊“向左向左”或或“向右向右”按鈕,可以改變該控件按鈕,可以改變該控件 的縮進級。單擊的縮進級。單擊“向右向右”按鈕可以增加一級縮進,單擊按鈕可以增加一級縮進,單擊“向向 左左”按鈕可以刪除一級縮進。在菜單編輯器中,每一縮進級按鈕可以刪除一級縮進。在菜單編輯器中,每一縮進級 都使用都使用4個點表示。個點表示。 (6)單擊)單擊“

10、下一個下一個”按鈕就可以再建一個菜單控件。按鈕就可以再建一個菜單控件。 10.3.4 10.3.4 設置分隔線設置分隔線 分隔線作為菜單項間的一個水平行顯示在菜單上。在菜分隔線作為菜單項間的一個水平行顯示在菜單上。在菜 單較多的菜單上,可以使用分隔線將各項劃分成一些邏輯組單較多的菜單上,可以使用分隔線將各項劃分成一些邏輯組 。 10.3.5 10.3.5 設置訪問鍵和快捷鍵設置訪問鍵和快捷鍵 通過定義訪問鍵和快捷鍵可以改進鍵盤對菜單命令的訪通過定義訪問鍵和快捷鍵可以改進鍵盤對菜單命令的訪 問。如果某一字符是該菜單項的訪問鍵,則該字符的下方會問。如果某一字符是該菜單項的訪問鍵,則該字符的下方會

11、有一條下劃線,用戶只要同時按下有一條下劃線,用戶只要同時按下Alt鍵和該字符鍵,就可以鍵和該字符鍵,就可以 激活該菜單。激活該菜單。 10.3.6 10.3.6 為菜單項編寫事件代碼為菜單項編寫事件代碼 菜單項只有一個菜單項只有一個Click事件。除了分隔線、無效的或不事件。除了分隔線、無效的或不 可見的菜單控件不能識別可見的菜單控件不能識別Click事件外,其它的菜單控件都事件外,其它的菜單控件都 能識別能識別Click事件。事件。 在菜單事件中編寫代碼和在其它控件的相在事件中編在菜單事件中編寫代碼和在其它控件的相在事件中編 寫代碼是完全一樣的。一旦菜單標題被選擇,則其下拉菜單寫代碼是完全一

12、樣的。一旦菜單標題被選擇,則其下拉菜單 將自動顯示。因此,一般情況下不對菜單標題的將自動顯示。因此,一般情況下不對菜單標題的Click事件事件 編寫代碼,除非客房有特殊要求時,如每次顯示下拉菜單時編寫代碼,除非客房有特殊要求時,如每次顯示下拉菜單時 要對某些菜單項進行操作。要對某些菜單項進行操作。 10.3.7 10.3.7 運行時創(chuàng)建和修改菜單運行時創(chuàng)建和修改菜單 用戶在設計時創(chuàng)建的菜單也能動態(tài)響應運行是條件的用戶在設計時創(chuàng)建的菜單也能動態(tài)響應運行是條件的 改變。例如,在某些特定的操作未完成前,通過使某些菜單改變。例如,在某些特定的操作未完成前,通過使某些菜單 項無效,以防止重復執(zhí)行此操作。

13、為了使用戶更清楚的了解項無效,以防止重復執(zhí)行此操作。為了使用戶更清楚的了解 在一組菜單項中某些菜單項被選中,可使用復選標志來指示在一組菜單項中某些菜單項被選中,可使用復選標志來指示 幾個命令中的哪些被選中。為了適應當前程序運行的環(huán)境,幾個命令中的哪些被選中。為了適應當前程序運行的環(huán)境, 有時需要臨時添加或刪除一些菜單項。有時需要臨時添加或刪除一些菜單項。 10.3.8 10.3.8 在菜單中添加文件列表在菜單中添加文件列表 目前流行的許多目前流行的許多Windows應用程序都具有在文件菜單應用程序都具有在文件菜單 下列出最近訪問過的文件列表的功能,要實現(xiàn)這樣的功能,下列出最近訪問過的文件列表的

14、功能,要實現(xiàn)這樣的功能, 只靠菜單編輯器是無法完成的,還必須通過程序代碼來配合只靠菜單編輯器是無法完成的,還必須通過程序代碼來配合 控制。控制。 首先必須創(chuàng)建一個菜單控件數(shù)組。菜單控件數(shù)組就是首先必須創(chuàng)建一個菜單控件數(shù)組。菜單控件數(shù)組就是 在同一菜單上共享相同名稱和事件過程的菜單項目的集合。在同一菜單上共享相同名稱和事件過程的菜單項目的集合。 每個菜單控件數(shù)組元素都由唯一的索引值來標識,該值可在每個菜單控件數(shù)組元素都由唯一的索引值來標識,該值可在 菜單編輯器的菜單編輯器的“索引索引”框中指定。當一個控件數(shù)組成員識別框中指定。當一個控件數(shù)組成員識別 一個事件時,一個事件時,Visual Basi

15、c將其將其Index屬性值作為一個附加的屬性值作為一個附加的 參數(shù)傳遞給事件過程。事件過程必須包含有驗證參數(shù)傳遞給事件過程。事件過程必須包含有驗證Index屬性屬性 值的代碼,由此來判斷正在使用的是哪一個數(shù)組成員。值的代碼,由此來判斷正在使用的是哪一個數(shù)組成員。 10.3.9 10.3.9 彈出式菜單彈出式菜單 彈出式菜單是獨立于菜單欄而顯示在窗體上的浮動菜單彈出式菜單是獨立于菜單欄而顯示在窗體上的浮動菜單 ,在,在Windows應用程序中,通常使用鼠標右鍵激活上下文菜應用程序中,通常使用鼠標右鍵激活上下文菜 單。定義彈出式菜單和定義下拉式菜單的方法是一樣的,任單。定義彈出式菜單和定義下拉式菜

16、單的方法是一樣的,任 何一個含有一個或一個以上的菜單都可以作為彈出式菜單。何一個含有一個或一個以上的菜單都可以作為彈出式菜單。 彈出式菜單的最高一級菜單項稱為頂級菜單項。頂級菜彈出式菜單的最高一級菜單項稱為頂級菜單項。頂級菜 單項的標題將不會在彈出式菜單中顯示出來,但頂級菜單必單項的標題將不會在彈出式菜單中顯示出來,但頂級菜單必 須被定義。用戶常常會想用一個快捷菜單來訪問在菜單欄中須被定義。用戶常常會想用一個快捷菜單來訪問在菜單欄中 不常用的選項,要創(chuàng)建一個不顯示在菜單欄里的菜單,可以不常用的選項,要創(chuàng)建一個不顯示在菜單欄里的菜單,可以 設計時使頂級菜單項不可見,即取消設計時使頂級菜單項不可見

17、,即取消“可見可見”復選框或在屬復選框或在屬 性窗口中將性窗口中將Visible屬性值設為屬性值設為False。激活彈出式菜單使用。激活彈出式菜單使用 PopupMenu方法。其語法格式如下:方法。其語法格式如下: 對象名對象名.PopupMenu 菜單名菜單名 ,flags,x,y,boldcommand 10.3.10 10.3.10 菜單實例菜單實例 本實例將演示如何利用菜單編輯器創(chuàng)建下拉式菜單和彈本實例將演示如何利用菜單編輯器創(chuàng)建下拉式菜單和彈 出式菜單。以及如何動態(tài)修改菜單的狀態(tài),以及菜單控件數(shù)出式菜單。以及如何動態(tài)修改菜單的狀態(tài),以及菜單控件數(shù) 組的使用等。組的使用等。 10.3.10 10.3.10 菜單實例菜單

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論