資源描述:
《用戶交互對象-菜單、工具欄和狀態(tài)欄》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第七講用戶交互對象—菜單、工具欄和狀態(tài)欄中國地質(zhì)大學(xué)(武漢)計(jì)算機(jī)學(xué)院計(jì)算機(jī)高級語言(C++)教學(xué)要點(diǎn)本章內(nèi)容主要包括菜單資源和工具欄資源的建立,菜單和工具欄按鈕對象對WM_COMMAND,UPDATE_COMMAND_UI消息的響應(yīng),狀態(tài)欄牽涉的字符串資源的編輯和對UPDATE_COMMAND_UI消息的響應(yīng),在框架類中如何管理工具欄和狀態(tài)欄。本章內(nèi)容從MFC示例開始7.1菜單7.2工具欄7.3狀態(tài)欄習(xí)題從MFC示例開始利用類向?qū)?,生成一個(gè)名為MfcExam的標(biāo)準(zhǔn)MFC多文檔工程類視圖資源視圖文件視圖用類向?qū)刹藛蜗㈨憫?yīng)函數(shù)資源ID響應(yīng)的消息在視
2、圖類中響應(yīng)消息添加消息響應(yīng)函數(shù)指定消息響應(yīng)函數(shù)的名稱已添加的響應(yīng)函數(shù)編輯代碼類向?qū)傻拇a如下:在頭文件MfcExamView.h中添加了響應(yīng)函數(shù)的聲明在視圖類CMfcExamView中添加了消息響應(yīng)函數(shù),向?qū)砑拥拇a未做任何事情7.1菜單7.1.1菜單的組成與分類7.1.2創(chuàng)建菜單資源7.1.3菜單消息7.1.4菜單消息的響應(yīng)*7.1.5為菜單增加快捷鍵和加速鍵7.1.1菜單的組成與分類1.菜單的組成菜單是一種資源,它在資源腳本中經(jīng)常被存作一個(gè)模板,用戶通常從菜單欄中選擇命令來操作應(yīng)用程序。菜單主要由下列部分組成:(1)菜單欄(2)菜單(3)菜單
3、項(xiàng)(4)子菜單(5)分隔條(separator)2.菜單的分類Windows系統(tǒng)支持三種類型的菜單,它們分別是菜單欄(主菜單)、彈出式子菜單和上下文菜單。7.1.2創(chuàng)建菜單資源VC應(yīng)用程序的資源是由應(yīng)用程序使用,但卻是在程序之外定義的只讀數(shù)據(jù)。菜單是一種資源,可以利用文本編輯器來創(chuàng)建和修改資源,它操作麻煩,不具有可視化的效果。現(xiàn)在的VC程序中的資源編輯都是通過可視化的資源編輯器來進(jìn)行的。對于SDI的應(yīng)用程序,應(yīng)用程序向?qū)梢粋€(gè)菜單資源IDR_MAINFRAM,對于一般的程序,我們就直接在上面添加自己所需要的菜單資源,方法為:271.打開缺省菜單資源在
4、Workspace窗口中選擇ResourceView選項(xiàng)卡,打開MenuExam工程的資源列表,選中“Menu”資源項(xiàng)目下的“IDR_MAINFRAME”,可以看到應(yīng)用程序缺省定義的菜單資源形式,它包含如圖所示的菜單中的“文件”、“編輯”、“查看”、“幫助”四個(gè)菜單項(xiàng)。2.增加一個(gè)主菜單項(xiàng)“圖形”選擇“幫助”菜單,然后按“Insert”鍵將會(huì)在“查看”與“幫助”菜單項(xiàng)之間加入一個(gè)空菜單項(xiàng)。雙擊該菜單項(xiàng),彈出下圖所示的主菜單屬性對話框,并在其中的“Caption”編輯框中輸入主菜單的標(biāo)題為“圖形”。這樣在應(yīng)用程序的主框架中就增加了一個(gè)主菜單項(xiàng)“圖形”。3
5、、增加主菜單“圖形”的子菜單項(xiàng)用鼠標(biāo)雙擊“圖形”菜單下的空白菜單項(xiàng),彈出下圖所示的子菜單屬性設(shè)置對話框,在ID組合框中輸入菜單的資源ID為ID_GRAPH_PIE,在“Caption”編輯框中輸入“餅圖”,在“Prompt”編輯框中輸入菜單項(xiàng)提示信息為“在客戶區(qū)畫一個(gè)餅圖畫餅圖”。用同樣的方法再添加一個(gè)菜單項(xiàng),其中菜單資源ID為ID_GRAPH_CHORD,“Caption”的內(nèi)容為“弦圖”,“Prompt”中的內(nèi)容為“在客戶區(qū)畫一個(gè)弦圖畫弦圖”。4.增加上下文菜單上下文菜單必須要有自己的資源ID,在Workspace窗口中選擇Resource
6、View選項(xiàng)卡,打開MenuExam工程的資源列表,鼠標(biāo)右鍵單擊“Menu”項(xiàng),在彈出菜單中選擇“InsertMenu”,完后將該菜單資源的ID修改為IDR_POPUP_MENU。用同步驟3的方法在IDR_POPUP_MENU資源中添加主菜單“上下文菜單”。7.1.3菜單消息菜單被選中時(shí)發(fā)送消息給Windows,再由Windows傳送給應(yīng)用程序的消息映射。在MFC消息映映射中,有三個(gè)菜單消息:WM_COMMAND、ON_UPDATE_COMMAND_UI和WM_CONTEXTMENU。1.WM_COMMAND消息當(dāng)用戶選中了菜單項(xiàng),激活了相關(guān)鍵加速器或
7、者是選中了與此菜單項(xiàng)相對應(yīng)的工具欄按鈕,Windows發(fā)送WM_COMMAND消息,該消息又叫命令消息。命令消息的消息映射采用以下形式:ON_COMMAND(MenuId,ClassMethod)2.UPDATE_COMMAND_UI消息UPDATE_COMMAND_UI是MFC所特有的,如果你想根據(jù)應(yīng)用程序的當(dāng)前狀態(tài)激活或者使菜單項(xiàng)無效,或者在程序運(yùn)行的某一時(shí)刻反映菜單項(xiàng)的可用性,該條消息就要處理。消息映射采用以下形式:ON_UPDATE_COMMAND_UI(MenuID,ClassMethod)3.上下文菜單消息WM_CONTEXTMENU在Wi
8、ndows系統(tǒng)下,隨處可見上下文菜單,只要你是在不同程序的不同操作區(qū)域內(nèi),按下鼠標(biāo)右鍵,都會(huì)出