菜單和多文檔界面設(shè)計(jì)_第1頁
菜單和多文檔界面設(shè)計(jì)_第2頁
菜單和多文檔界面設(shè)計(jì)_第3頁
菜單和多文檔界面設(shè)計(jì)_第4頁
菜單和多文檔界面設(shè)計(jì)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1菜單和多文檔界面設(shè)計(jì)第07章菜單與多文檔界面設(shè)計(jì)7.1菜單概述7.2菜單畫板7.3菜單設(shè)計(jì)7.4多文檔界面設(shè)計(jì)第1頁/共38頁7.1菜單概述1.菜單對(duì)象2.菜單對(duì)象的兩種使用方式(1)主菜單(2)彈出式菜單3.菜單設(shè)計(jì)原則第2頁/共38頁1.菜單對(duì)象菜單(menu)是一種獨(dú)立的PowerBuilder對(duì)象,可以顯示在系統(tǒng)樹窗口中。一個(gè)菜單對(duì)象對(duì)應(yīng)一組命令或一種選擇。程序運(yùn)行時(shí),在當(dāng)前活動(dòng)窗口中,用戶選擇一個(gè)菜單,可以執(zhí)行一組命令或?qū)崿F(xiàn)一種選擇。菜單豐富了應(yīng)用程序界面的表達(dá)能力。第3頁/共38頁2.菜單對(duì)象的兩種使用方式(1)主菜單主菜單是相對(duì)于窗口而言的,它出現(xiàn)在窗口的標(biāo)題欄下,與窗口同時(shí)出現(xiàn)。窗口的MenuName屬性指定該窗口上顯示的菜單對(duì)象。調(diào)用窗口的ChangeMenu()函數(shù)在執(zhí)行期間可以改變與窗口關(guān)聯(lián)的菜單對(duì)象。主菜單的結(jié)構(gòu)一般較復(fù)雜。每個(gè)菜單對(duì)象由若干個(gè)菜單項(xiàng)(menuitem)組成,每個(gè)菜單項(xiàng)還可以有子菜單項(xiàng)(submenuitem),這樣形成菜單的多層次結(jié)構(gòu)。第4頁/共38頁2.菜單對(duì)象的兩種使用方式(2)彈出式菜單彈出式菜單(pop-upmenu)是相對(duì)于控件而言的,當(dāng)鼠標(biāo)指向某控件時(shí),單擊鼠標(biāo)右鍵,彈出一個(gè)菜單,稱為彈出式菜單。彈出式菜單的結(jié)構(gòu)相對(duì)簡(jiǎn)單,一般最多只有二層菜單項(xiàng)。可以為窗口及控件設(shè)計(jì)彈出式菜單。但窗口及控件上沒有屬性與彈出式菜單關(guān)聯(lián),需要在RButtonDown事件(單擊右鍵)中寫腳本以激活彈出式菜單。第5頁/共38頁3.菜單設(shè)計(jì)原則

菜單是與窗口分離的獨(dú)立對(duì)象,通常將對(duì)窗口的操作、對(duì)窗口中數(shù)據(jù)窗口控件的操作設(shè)計(jì)成通用的菜單,使得窗口界面清楚、整潔。而且即使數(shù)據(jù)窗口控件所連接的數(shù)據(jù)窗口對(duì)象改變了,菜單項(xiàng)仍然可以起作用,提高了軟件的可重用性。因此,我們通常采用菜單方式實(shí)現(xiàn)對(duì)窗口中數(shù)據(jù)的操作。菜單設(shè)計(jì)應(yīng)該結(jié)構(gòu)合理,層次清晰,分工明確。每個(gè)菜單項(xiàng)實(shí)現(xiàn)特定功能,相互關(guān)聯(lián)的菜單項(xiàng)組合在一個(gè)下拉菜單中,菜單的層次不宜太多,一般只級(jí)聯(lián)一級(jí)。第6頁/共38頁7.2菜單畫板菜單畫板(MenuPainter)提供了插入菜單項(xiàng)、設(shè)置屬性、編寫腳本、預(yù)覽菜單等多種功能。7.2.1菜單畫板的組成7.2.2菜單畫板的基本操作第7頁/共38頁7.2.1菜單畫板的組成

第8頁/共38頁7.2.2菜單畫板的基本操作1.創(chuàng)建菜單對(duì)象2.添加菜單項(xiàng)3.命名菜單項(xiàng)4.保存菜單對(duì)象5.分隔菜單第9頁/共38頁1.創(chuàng)建菜單對(duì)象單擊工具欄上的【New】按鈕,在New對(duì)話框的PBObject頁上,選擇Menu菜單對(duì)象,則系統(tǒng)創(chuàng)建了一個(gè)菜單對(duì)象并打開菜單畫板。第10頁/共38頁2.添加菜單項(xiàng)

在新建菜單對(duì)象的菜單樹中只有一個(gè)菜單項(xiàng)Untitled0,這是一棵菜單樹的根,必須為該菜單添加菜單項(xiàng)。操作方法是,在菜單項(xiàng)上單擊鼠標(biāo)右鍵,執(zhí)行彈出式菜單InsertSubMenuItem,在編輯框中鍵入菜單顯示文本,之后,在所見即所得視圖中即可見到新加入的菜單項(xiàng)。第11頁/共38頁3.命名菜單項(xiàng)

菜單項(xiàng)的Name屬性指定該菜單項(xiàng)的名稱,Text屬性指定菜單項(xiàng)的顯示文本。當(dāng)在添加菜單項(xiàng)時(shí)鍵入的文本自動(dòng)成為菜單項(xiàng)的Text屬性,并且Name屬性中顯示的默認(rèn)菜單名是菜單項(xiàng)的命名前綴“m_”加Text屬性值。第12頁/共38頁4.保存菜單對(duì)象單擊工具條上的【Save】按鈕,保存當(dāng)前菜單對(duì)象。第1次保存時(shí),需要在SaveMenu對(duì)話框上為菜單對(duì)象命名,菜單對(duì)象的命名前綴是m_。第13頁/共38頁5.分隔菜單

如果設(shè)置菜單項(xiàng)的Text屬性為“-”(減號(hào)),則該菜單項(xiàng)顯示為一條分隔線。第14頁/共38頁7.3菜單設(shè)計(jì)7.3.1菜單項(xiàng)的屬性和事件7.3.2引用對(duì)象7.3.3使用彈出式菜單第15頁/共38頁7.3.1菜單項(xiàng)的屬性和事件菜單項(xiàng)的屬性如下表所示:第16頁/共38頁7.3.1菜單項(xiàng)的屬性和事件菜單項(xiàng)的事件如下表所示:第17頁/共38頁7.3.2引用對(duì)象1.在菜單中引用窗口和控件2.在窗口中引用菜單對(duì)象第18頁/共38頁1.在菜單中引用窗口和控件在菜單中引用窗口的屬性時(shí),使用窗口的名字限定屬性。語法格式為:窗口.屬性例如,w_input.WindowState=maximized!在菜單中需要引用窗口中的控件時(shí),使用窗口的名字限定該控件。語法格式為:窗口.控件.屬性例如,w_input.dw_1.Enabled=true第19頁/共38頁2.在窗口中引用菜單對(duì)象在窗口腳本中引用菜單對(duì)象的語法格式為:菜單對(duì)象.菜單項(xiàng).屬性菜單對(duì)象.菜單項(xiàng).子菜單項(xiàng).屬性例如,菜單項(xiàng)及工具欄上的按鈕狀態(tài)應(yīng)該隨窗口的激活狀態(tài)而變化,當(dāng)窗口獲得焦點(diǎn)時(shí)可操作,當(dāng)窗口失去焦點(diǎn)時(shí)不可操作。因此,需要在窗口的activate事件上寫以下使菜單項(xiàng)可操作的腳本:m_input.m_save.Enabled=false第20頁/共38頁7.3.3使用彈出式菜單1.將窗口上的主菜單作為彈出式菜單使用2.將與窗口無關(guān)的菜單作為彈出式菜單使用第21頁/共38頁1.將窗口上的主菜單作為彈出式菜單使用可以將已與窗口關(guān)聯(lián)的菜單對(duì)象或其中的某個(gè)下拉菜單作為彈出式菜單顯示。例如,在數(shù)據(jù)窗口控件dw_1的RButtonDown事件的腳本中,可以直接調(diào)用m_input的函數(shù)PopMenu()彈出菜單,語句如下:m_input.PopMenu(PointerX(),PointerY())類似地,也可將m_input中的某個(gè)下拉菜單作為彈出式菜單顯示,語句如下:m_input.m_save.PopMenu(PointerX(),PointerY())第22頁/共38頁2.將與窗口無關(guān)的菜單作為彈出式菜單實(shí)際應(yīng)用中,窗口上的主菜單與控件上的彈出式菜單一般不會(huì)共用一個(gè)菜單對(duì)象。通常的做法是,窗口上的主菜單功能較強(qiáng),結(jié)構(gòu)復(fù)雜,包含較多的菜單項(xiàng),而控件上的彈出式菜單結(jié)構(gòu)簡(jiǎn)單,只需含有與該控件相關(guān)的菜單項(xiàng)即可。不同的控件所需進(jìn)行的操作不同,因而關(guān)聯(lián)的彈出式菜單也不同。第23頁/共38頁7.4多文檔界面設(shè)計(jì)7.4.1SDI與MDI7.4.2MDI框架窗口與文檔窗口7.4.3菜單與工具欄7.4.4MDI窗口的函數(shù)第24頁/共38頁7.4.1SDI與MDI1.單文檔界面單文檔界面(SingleDocumentInterface,SDI)的應(yīng)用程序由一個(gè)窗口構(gòu)成,運(yùn)行時(shí)只能處理一個(gè)文件,需要處理多個(gè)文件時(shí),必須同時(shí)打開多個(gè)應(yīng)用程序,這樣任務(wù)欄上就有多個(gè)任務(wù)在運(yùn)行。例如Windows的記事本、畫圖等程序都是SDI風(fēng)格。SDI的優(yōu)點(diǎn)是程序簡(jiǎn)單而短小,可為Windows本身所攜帶。第25頁/共38頁7.4.1SDI與MDI2.多文檔界面多文檔界面(MultipleDocumentInterface,MDI)的應(yīng)用程序由一個(gè)框架窗口和多個(gè)文檔窗口組成。可同時(shí)打開多個(gè)文檔窗口編輯多個(gè)文件,而不必啟動(dòng)多個(gè)任務(wù)。同時(shí)打開的多個(gè)文檔窗口可以按層疊、級(jí)聯(lián)等方式排列,其中只有一個(gè)窗口是活動(dòng)的,顯示在屏幕最前,其余窗口呈非活動(dòng)狀態(tài),各窗口的活動(dòng)狀態(tài)可以切換。第26頁/共38頁7.4.2MDI框架窗口與文檔窗口1.MDI框架窗口的組成第27頁/共38頁7.4.2MDI框架窗口與文檔窗口2.創(chuàng)建MDI框架窗口創(chuàng)建MDI框架窗口的步驟如下:創(chuàng)建一個(gè)新窗口,設(shè)置WindowType屬性為mdi!或mdihelp!。設(shè)置MenuName屬性為與之相關(guān)聯(lián)的菜單對(duì)象。第28頁/共38頁7.4.2MDI框架窗口與文檔窗口3.文檔窗口文檔窗口在PowerBuilder中稱為sheet,窗口類型是main!,不能是response!、mdi!和mdihelp!類型。第29頁/共38頁7.4.3菜單與工具欄1.控制文檔窗口的排列方式2.微幫助文本3.工具欄4.ParentWindow代詞第30頁/共38頁1.控制文檔窗口的排列方式主菜單中通常有一個(gè)“窗口”菜單項(xiàng),用于控制多個(gè)文檔窗口之間的排列方式。例如,PowerBuilder集成環(huán)境的Window菜單下就有Layer(層疊)、Cascade(級(jí)聯(lián))等菜單項(xiàng)用于改變畫板的排列方式。第31頁/共38頁2.微幫助文本微幫助(Microhelp)是顯示在MDI框架窗口底部狀態(tài)欄上的文本信息,是菜單項(xiàng)的幫助文本。菜單項(xiàng)的Microhelp屬性指定該菜單項(xiàng)的微幫助文本。當(dāng)程序運(yùn)行用戶選擇菜單項(xiàng)時(shí),系統(tǒng)就會(huì)在狀態(tài)欄中顯示當(dāng)前菜單項(xiàng)的幫助文本。第32頁/共38頁3.工具欄工具欄上的圖標(biāo)按鈕為選擇菜單項(xiàng)提供了一種快捷方式,用戶只要單擊工具欄上的按鈕就能完成相應(yīng)菜單項(xiàng)的功能。MDI框架窗口和文檔窗口都可以帶有工具欄,當(dāng)兩者都有工具欄時(shí),打開文檔窗口后,文檔窗口的菜單會(huì)成為當(dāng)前菜單顯示在工具欄上,而MDI框架窗口的菜單會(huì)被暫時(shí)隱藏。但兩者的工具欄會(huì)同時(shí)顯示在窗口上,以方便用戶的操作。第33頁/共38頁4.ParentWindow代詞保留字ParentWindow是一個(gè)代詞,在菜單項(xiàng)腳本中使用,指代與該菜單對(duì)象相關(guān)聯(lián)的MDI框架窗口。例如,在“退出”菜單項(xiàng)的Clicked事件上寫以下腳本,關(guān)閉與與該菜單對(duì)象相關(guān)聯(lián)的MDI框架窗口:close(ParentWindow)可以通過ParentWindow引用與菜單相關(guān)聯(lián)的MDI窗口的屬性,但不能引用MDI窗口中控件的屬性。第34頁/共38頁7.4.4MDI窗口的函數(shù)1.打開文檔窗口的函數(shù)2.控制文檔窗口的函數(shù)第35頁/共38頁1.打開文檔窗口的函數(shù)在MDI窗口或菜單對(duì)象腳本中,調(diào)用系統(tǒng)函數(shù)OpenSheet()打開指定的文檔窗口。OpenSheet()函數(shù)的語法格式為:OpenSheet(文

溫馨提示

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

評(píng)論

0/150

提交評(píng)論