C++菜單、工具欄和狀態(tài)欄.ppt

C++菜單、工具欄和狀態(tài)欄.ppt

ID:58386447

大?。?0.00 KB

頁數(shù):19頁

時(shí)間:2020-09-07

C++菜單、工具欄和狀態(tài)欄.ppt_第1頁
C++菜單、工具欄和狀態(tài)欄.ppt_第2頁
C++菜單、工具欄和狀態(tài)欄.ppt_第3頁
C++菜單、工具欄和狀態(tài)欄.ppt_第4頁
C++菜單、工具欄和狀態(tài)欄.ppt_第5頁
資源描述:

《C++菜單、工具欄和狀態(tài)欄.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第6章菜單、工具欄和狀態(tài)欄本章要點(diǎn):菜單的實(shí)現(xiàn)機(jī)制和創(chuàng)建過程。普通下拉菜單和上下文菜單的創(chuàng)建。工具欄的創(chuàng)建和消息處理過程。狀態(tài)欄的使用。6.1菜單及加速鍵的使用菜單為所有的Windows應(yīng)用程序提供了一致的接口方式,可使用戶直觀地了解并方便地使用應(yīng)用程序所提供的各項(xiàng)功能,是Windows資源中最重要的資源之一。使用加速鍵可使菜單的操作更靈活快捷,兩種資源往往密不可分,菜單通常由以下部分組成:(1)窗口主菜單欄(位于窗口的標(biāo)題欄下方,其菜單項(xiàng)通常為下拉式菜單);(2)下拉式菜單框;(3)菜單項(xiàng)熱鍵標(biāo)識;(4)菜單項(xiàng)加速鍵標(biāo)識;(5)菜單項(xiàng)分隔線。此外

2、,菜單項(xiàng)前常有選中標(biāo)志以標(biāo)識其是否被選中。6.1.1菜單概述1.菜單及加速鍵菜單作為Windows圖形用戶界面中窗口的重要組成部分,可以方便地操作應(yīng)用程序。Windows中的菜單主要分為兩種:一種是附著在框架窗口和對話框的菜單條上的下拉菜單,另一種是彈出式的上下文菜單。菜單是應(yīng)用程序中最常見的元素。大量命令的調(diào)用都是通過選擇菜單實(shí)現(xiàn)的。在使用AppWizard生成SDI或MDI應(yīng)用程序框架時(shí),AppWizard將自動(dòng)生成標(biāo)準(zhǔn)的應(yīng)用框架菜單資源(IDR_MAINFRAME)和菜單處理函數(shù)代碼。為了滿足實(shí)際需要,有時(shí)需要對默認(rèn)菜單進(jìn)行修改。6.1.1菜

3、單概述2.CMenu類菜單類(CMenu類)提供了許多處理菜單和菜單項(xiàng)的方法,這些方法分別是菜單構(gòu)造方法、菜單操作方法、菜單項(xiàng)操作方法和虛擬方法等。可以通過下列三種方法獲得指向CMenu對象的指針:(1)利用CWnd::GetMenu()函數(shù)獲取指向指定菜單的指針。(2)利用CWnd::GetSystemMenu()函數(shù)獲取指向系統(tǒng)菜單的指針。(3)利用CMenu::LoadMenu()函數(shù)從應(yīng)用程序的可執(zhí)行文件裝載菜單資源,并將它連接到CMenu對象上。6.1.1菜單概述在獲得菜單指針之后,就可以利用CMenu成員函數(shù)在運(yùn)行時(shí)動(dòng)態(tài)修改菜單(用戶利

4、用資源編輯器只能靜態(tài)修改菜單資源)。CMenu類的成員函數(shù)AppendMenu()、InsertMenu()、ModifyMenu()和RemoveMenu()分別用于添加、插入、修改和刪除指定菜單項(xiàng)。標(biāo)識菜單項(xiàng)的方法有兩種:一是用ID,二是用位置索引。如果菜單由彈出式菜單構(gòu)成,則通過成員函數(shù)GetSubMenu()獲取該菜單的一個(gè)彈出式菜單的CMenu對象。成員函數(shù)TracePopupMenu()在一個(gè)POINT結(jié)構(gòu)指定的位置顯示一個(gè)浮動(dòng)的彈出式菜單,并跟蹤該菜單上的選擇操作。浮動(dòng)的彈出式菜單可以出現(xiàn)在屏幕上的任何地方。6.1.2菜單消息及消息映

5、射在MFC消息映射中,包含兩個(gè)菜單消息:WM_COMMAND和UPDATE_COMMAND_UI。(1)WM_COMMAND消息。當(dāng)用戶選中了某個(gè)菜單項(xiàng),激活菜單的加速鍵或選中了相應(yīng)的工具欄按鈕時(shí),會(huì)發(fā)出消息標(biāo)識符為WM_COMMAND的命令消息。其消息映射為ON_COMMAND,ON_COMMAND消息映射的映射方式是:ON_COMMAND(菜單項(xiàng)的標(biāo)識ID,消息處理函數(shù))(2)UPDATE_COMMAND_UI消息。UPDATE_COMMAND_UI是MFC所特有的,應(yīng)用程序不一定要處理該消息,如果用戶想根據(jù)應(yīng)用程序的當(dāng)前狀態(tài)對菜單項(xiàng)進(jìn)行激活、

6、使菜單項(xiàng)無效,或給菜單項(xiàng)添加被選中標(biāo)記等操作,要添加該消息6.1.3上下文菜單Windows的一個(gè)重要特征是鼠標(biāo)右鍵功能。當(dāng)用戶單擊鼠標(biāo)右鍵時(shí),系統(tǒng)會(huì)彈出一個(gè)浮動(dòng)菜單(稱為上下文菜單)供用戶選擇。通過該菜單,用戶可以方便、快捷地進(jìn)行一些操作。應(yīng)用程序在響應(yīng)彈出鼠標(biāo)右鍵消息時(shí),調(diào)用LoadMenu()函數(shù)裝載菜單資源,然后調(diào)用GetSubMenu()成員函數(shù)獲取指向彈出式菜單的CMenu指針,最后調(diào)用TrackPopupMenu()成員函數(shù)顯示該浮動(dòng)彈出式菜單,并跟蹤用戶的選擇。6.1.5改變菜單的顯示狀態(tài)有時(shí)候,需要根據(jù)應(yīng)用程序的內(nèi)部狀態(tài)來對菜單項(xiàng)

7、作相應(yīng)的改變。例如,假設(shè)在應(yīng)用程序的Edit菜單中有一個(gè)Paste選項(xiàng)。當(dāng)沒有什么東西可粘貼時(shí),Paste就應(yīng)當(dāng)是無效狀態(tài)。又如,為了標(biāo)識系統(tǒng)正處于何種狀態(tài),可對菜單項(xiàng)進(jìn)行標(biāo)記;為了提示用戶,應(yīng)當(dāng)將菜單項(xiàng)置為高亮度等。為了使應(yīng)用程序的狀態(tài)與菜單項(xiàng)保持同步,可以采用MFC提供的方法。即每當(dāng)彈出式菜單第一次顯示時(shí),都會(huì)發(fā)送特殊的更新命令UI消息,該消息通常傳遞給與菜單項(xiàng)相聯(lián)系的相應(yīng)對象。通過編輯與菜單項(xiàng)相聯(lián)系的UPDATE_COMMAND_UI消息所映射的函數(shù)即可完成對菜單項(xiàng)狀態(tài)的設(shè)置。此外,還可以用CMenu::GheckMenuItem()和Ena

8、bleMenuItem()進(jìn)行處理。6.2工具欄的使用6.2.1工具欄概述工具欄是一系列工具按鈕的組合,借助它們可以提高用

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。