




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第 4 4 章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 4.1 菜單菜單 4.2 工具欄工具欄 4.3 狀態(tài)欄狀態(tài)欄 4.4 應(yīng)用實例應(yīng)用實例visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 24.1 4.1 菜單菜單 4.1.1 菜單的類型菜單的類型 常見菜單有常見菜單有3 3種種:主菜單、彈出菜單和快捷菜單主菜單、彈出菜單和快捷菜單。1.1.主菜單主菜單 指出現(xiàn)在應(yīng)用程序主窗口或最上層窗口的菜單。指出現(xiàn)在應(yīng)用程序主窗口或最上層窗口的菜單。通常對應(yīng)有一個彈出菜單作為它的子菜單。通常對應(yīng)有一個彈出菜單作為它的子菜單。visu
2、al c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 32.2.彈出菜單彈出菜單 指指選擇主菜單或一個菜單項時彈出的子菜單選擇主菜單或一個菜單項時彈出的子菜單。3.3.快捷菜單快捷菜單 當當右擊某個界面對象右擊某個界面對象時,通常會時,通常會彈出快捷菜單彈出快捷菜單,它出現(xiàn)在鼠標箭頭的位置,它出現(xiàn)在鼠標箭頭的位置,快速展示當前對象可用的快速展示當前對象可用的命令功能命令功能。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 4菜單設(shè)計一般需要經(jīng)過下面兩步:菜單設(shè)計一般需要經(jīng)過下面
3、兩步:(1) (1) 使用菜單編輯器編輯菜單資源;使用菜單編輯器編輯菜單資源;(2) (2) 使用使用classwizardclasswizard進行消息映射,編輯成員函進行消息映射,編輯成員函數(shù),完成菜單所要實現(xiàn)的功能。數(shù),完成菜單所要實現(xiàn)的功能。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 54.1.2 編輯菜單編輯菜單 使用菜單編輯器來編輯菜單資源。雙擊使用菜單編輯器來編輯菜單資源。雙擊resourceviewresourceview視圖中的視圖中的menumenu菜單資源,打開菜單編輯器。菜單資源,打開菜單編輯器。 v
4、isual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 61.1.插入新菜單項插入新菜單項在當前空白菜單項位置插入在當前空白菜單項位置插入 選定窗口中的空白菜單項后按回車鍵選定窗口中的空白菜單項后按回車鍵( (或雙或雙擊空白菜單項擊空白菜單項) ),系統(tǒng)彈出菜單屬性對話框。,系統(tǒng)彈出菜單屬性對話框。在某菜單項前插入在某菜單項前插入 選中該菜單項并按選中該菜單項并按insins鍵,再雙擊該空白鍵,再雙擊該空白菜單項進行編輯。菜單項進行編輯。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具
5、欄與狀態(tài)欄 72.2.屬性對話框的設(shè)置屬性對話框的設(shè)置 用于輸入菜單項的用于輸入菜單項的標識符標識符(id)(id)、標題標題(caption)(caption)和菜和菜單項在狀態(tài)欄上顯示的單項在狀態(tài)欄上顯示的提示提示(prompt)(prompt)信息等信息等。 菜單項的標菜單項的標識符識符(id)(id)菜單項在狀態(tài)欄上菜單項在狀態(tài)欄上顯示的提示信息顯示的提示信息標題標題visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 8visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與
6、狀態(tài)欄 93.3.調(diào)整菜單項位置調(diào)整菜單項位置 選中某菜單項將其拖至適當位置。選中某菜單項將其拖至適當位置。4.4.刪除菜單項刪除菜單項 用鼠標單擊菜單項或用上、下、左、右光標鍵用鼠標單擊菜單項或用上、下、左、右光標鍵選擇菜單項,然后單擊選擇菜單項,然后單擊cutcut按鈕或按按鈕或按deldel鍵刪除。鍵刪除。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 10【例例4.1】編寫一個單文檔應(yīng)用程序編寫一個單文檔應(yīng)用程序mydraw,在菜單欄,在菜單欄中增加一個中增加一個“繪圖繪圖”主菜單,并在其中添加主菜單,并在其中添加“矩形
7、矩形”和和“橢圓橢圓”兩個菜單項。兩個菜單項。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 114.1.3 建立消息映射建立消息映射 在上例中僅添加了菜單,并沒有實現(xiàn)菜單的功能,在上例中僅添加了菜單,并沒有實現(xiàn)菜單的功能,即沒有對應(yīng)的命令處理函數(shù)與菜單項對應(yīng),因此,添即沒有對應(yīng)的命令處理函數(shù)與菜單項對應(yīng),因此,添加的菜單項是加的菜單項是灰色灰色的,即的,即處于當前不可用狀態(tài)處于當前不可用狀態(tài)。 添加新的菜單項后,還應(yīng)該為菜單項指定一個處添加新的菜單項后,還應(yīng)該為菜單項指定一個處理函數(shù),即利用理函數(shù),即利用classwizard
8、classwizard類向?qū)砑右粋€消息處理類向?qū)砑右粋€消息處理函數(shù)。函數(shù)。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 12【例例4.24.2】為例為例4.14.1中增加的菜單項添加消息處理函數(shù)。中增加的菜單項添加消息處理函數(shù)。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 134.1.4 菜單的有效控制菜單的有效控制 一般情況下,菜單項都不止一種狀態(tài)。一般情況下,菜單項都不止一種狀態(tài)。 例如,在沒有選擇任何內(nèi)容時,例如,在沒有選擇任何內(nèi)容時,editedi
9、t菜單下的菜單下的copycopy、cutcut等菜單項是無效的等菜單項是無效的( (灰色顯示灰色顯示) )。有時,我們還會看到,在菜單。有時,我們還會看到,在菜單項旁邊可能還會有檢查標記,表示它是選中的還是不選中的。項旁邊可能還會有檢查標記,表示它是選中的還是不選中的。比如,在比如,在wordword的視圖菜單項下,當用戶選用的視圖菜單項下,當用戶選用【網(wǎng)格線網(wǎng)格線】或或【標標尺尺】時,相應(yīng)菜單項前會出現(xiàn)一個時,相應(yīng)菜單項前會出現(xiàn)一個“”。 mfcmfc通過消息映射機制和通過消息映射機制和ccmduiccmdui類更新菜單項類更新菜單項的顯示的顯示。visual c+程序設(shè)計與應(yīng)用教程202
10、1/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 14 在類向?qū)г陬愊驅(qū)lasswizardclasswizard的的message mapmessage map標簽中,標簽中,如果選擇一個菜單如果選擇一個菜單idid,在,在messagesmessages列表框中就會列表框中就會出現(xiàn)以下兩項:出現(xiàn)以下兩項: commandupdate_command_ui 其中其中update_command_ui是更新命令用是更新命令用戶接口消息,專門用于處理菜單項和工具條按鈕戶接口消息,專門用于處理菜單項和工具條按鈕的更新。的更新。visual c+程序設(shè)計與應(yīng)用教程2021/1
11、1/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 15【例例4.34.3】為例為例4.24.2的程序的程序mydrawmydraw添加更新用戶界面的消添加更新用戶界面的消息處理函數(shù),使程序啟動時菜單項息處理函數(shù),使程序啟動時菜單項【橢圓橢圓】處于不可用處于不可用狀態(tài),當用戶單擊狀態(tài),當用戶單擊【矩形矩形】菜單項后,在菜單項前顯示菜單項后,在菜單項前顯示 “” 標記,并使標記,并使【橢圓橢圓】菜單項變?yōu)榭捎谩2藛雾椬優(yōu)榭捎?。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 164.1.5 快捷菜單快捷菜單 為應(yīng)用程序
12、創(chuàng)建快捷菜單主要有以下兩種方法。為應(yīng)用程序創(chuàng)建快捷菜單主要有以下兩種方法。1.1.使用使用component gallerycomponent gallery創(chuàng)建快捷菜單創(chuàng)建快捷菜單 component gallery(component gallery(組件畫廊組件畫廊) )是一個組件庫,它是一個組件庫,它保存著可以共享或重用的代碼。這些代碼包括由保存著可以共享或重用的代碼。這些代碼包括由visual visual c+c+自帶的組件和從用戶工程中增加到自帶的組件和從用戶工程中增加到gallerygallery中去的用中去的用戶自定義組件。戶自定義組件。visual c+程序設(shè)計與應(yīng)用教程2
13、021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 17【例例4.4】 為例為例4.3中的應(yīng)用程序中的應(yīng)用程序mydraw增加一個快捷增加一個快捷菜單。程序運行后,用戶在視圖窗口中右擊,彈出一個菜單。程序運行后,用戶在視圖窗口中右擊,彈出一個快捷菜單,顯示主菜單快捷菜單,顯示主菜單“繪圖繪圖”下的所有菜單項。下的所有菜單項。快捷菜單快捷菜單visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 182.2.使用使用trackpopupmenu( )trackpopupmenu( )函數(shù)創(chuàng)建快捷菜單函數(shù)創(chuàng)建快捷菜單
14、 使用菜單資源編輯器和使用菜單資源編輯器和cmenu:trackpopupmenu( )cmenu:trackpopupmenu( )函函數(shù)來創(chuàng)建右鍵快捷菜單。數(shù)來創(chuàng)建右鍵快捷菜單。cmenu:trackpopupmenucmenu:trackpopupmenu函數(shù)的原型為:函數(shù)的原型為: bool trackpopupmenu(uint nflags,int x,int y,cwnd* pwnd,lpcrect lprect=null); 該函數(shù)的功能是顯示一個右鍵快捷菜單。其中,該函數(shù)的功能是顯示一個右鍵快捷菜單。其中,nflagsnflags表示屏幕位置標志(見下表)。表示屏幕位置標志(
15、見下表)。x x、y y分別表示菜單分別表示菜單的水平坐標和頂端的垂直坐標;的水平坐標和頂端的垂直坐標;pwndpwnd表示彈出菜單的窗口,表示彈出菜單的窗口,包括全部的包括全部的wm_commandwm_command消息;消息;lprectlprect表示一個矩形域,當表示一個矩形域,當單擊這個矩形域時菜單不消失。單擊這個矩形域時菜單不消失。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 19參數(shù)參數(shù)nflags的含義的含義 visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工
16、具欄與狀態(tài)欄 20【例例4.5】 使用使用trackpopupmenu( )函數(shù)創(chuàng)建例函數(shù)創(chuàng)建例4.3中的快捷中的快捷菜單。菜單。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 214.1.6 創(chuàng)建動態(tài)菜單創(chuàng)建動態(tài)菜單動態(tài)創(chuàng)建菜單分為以下動態(tài)創(chuàng)建菜單分為以下3 3個步驟。個步驟。(1) (1) 利用利用createmenu( )createmenu( )函數(shù)創(chuàng)建一個空的彈出式菜單,函數(shù)創(chuàng)建一個空的彈出式菜單,該函數(shù)的原型為:該函數(shù)的原型為: hmenu createmenu() 該函數(shù)沒有參數(shù),它的返回值是一個菜單句柄。該函數(shù)沒
17、有參數(shù),它的返回值是一個菜單句柄。 (2) 調(diào)用調(diào)用appendmenu( )或或insertmenu( )函數(shù)在菜單中加函數(shù)在菜單中加入菜單項。入菜單項。 (3) (3) 調(diào)用函數(shù)調(diào)用函數(shù)setmenu( )setmenu( )加載動態(tài)菜單。加載動態(tài)菜單。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 22【例例4.6】為例為例4.4中的應(yīng)用程序中的應(yīng)用程序mydraw創(chuàng)建一個創(chuàng)建一個【畫畫筆筆】動態(tài)菜單。程序運行后,用戶單擊動態(tài)菜單。程序運行后,用戶單擊【繪圖繪圖 | 矩形矩形】菜單項,在主菜單中添加動態(tài)菜單菜單項,在主菜單
18、中添加動態(tài)菜單【畫筆畫筆】,并通過此,并通過此菜單的子菜單項畫一個紅色矩形。菜單的子菜單項畫一個紅色矩形。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 234.1.7 創(chuàng)建基于對話框的菜單創(chuàng)建基于對話框的菜單 從第從第2 2章可知,利用章可知,利用mfc appwizardexemfc appwizardexe向?qū)Чぞ呖上驅(qū)Чぞ呖梢陨苫趯υ捒虻膽?yīng)用程序。以生成基于對話框的應(yīng)用程序。 基于對話框的應(yīng)用程序在運行時并沒有菜單欄?;趯υ捒虻膽?yīng)用程序在運行時并沒有菜單欄。 下面我們通過實例來討論如何給它創(chuàng)建一個菜單。下面我們通過
19、實例來討論如何給它創(chuàng)建一個菜單。 visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 24【例例4.7】 編寫一個基于對話框的應(yīng)用程序編寫一個基于對話框的應(yīng)用程序li4_7,為該應(yīng),為該應(yīng)用程序添加一個菜單。菜單包括用程序添加一個菜單。菜單包括【文件文件】、【編輯編輯】、【視圖視圖】和和【幫助幫助】4個主菜單項。個主菜單項。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 254.2 4.2 工具欄工具欄 在在mfcmfc中,工具欄的功能由類中,工具欄的功能由類ctoo
20、lbarctoolbar實現(xiàn)。工具實現(xiàn)。工具欄資源和工具欄類欄資源和工具欄類ctoolbarctoolbar是工具欄的兩個要素。創(chuàng)建是工具欄的兩個要素。創(chuàng)建工具欄的基本步驟是:工具欄的基本步驟是:l l 創(chuàng)建工具欄資源;創(chuàng)建工具欄資源;l l 構(gòu)建一個構(gòu)建一個ctoolbarctoolbar對象;對象;l l 調(diào)用調(diào)用ctoolbar:create( )ctoolbar:create( )或或createex( )createex( )函數(shù)創(chuàng)函數(shù)創(chuàng)建工具欄窗口;建工具欄窗口;l l 調(diào)用調(diào)用ctoolbar:loadtoolbarctoolbar:loadtoolbar載入工具欄資源。載入工具
21、欄資源。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 264.2.1 編輯工具欄編輯工具欄 使 用 工 具 欄 編 輯 器 來 編 輯 工 具 欄 資 源 。 雙 擊使 用 工 具 欄 編 輯 器 來 編 輯 工 具 欄 資 源 。 雙 擊resourceviewresourceview視圖中的視圖中的toolbartoolbar工具欄資源,即可打開工工具欄資源,即可打開工具欄編輯器。具欄編輯器。 visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 271.1.添加
22、按鈕添加按鈕 雙擊工具條上的空白按鈕或單擊空白按鈕后,選雙擊工具條上的空白按鈕或單擊空白按鈕后,選擇擇【view|properties】菜單項,彈出如圖所示的菜單項,彈出如圖所示的toolbar button properties屬性對話框,在此對話框?qū)傩詫υ捒颍诖藢υ捒蛑芯庉嫲粹o的標識符、寬度與高度值。中編輯按鈕的標識符、寬度與高度值。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 282.2.刪除按鈕刪除按鈕 將按鈕拖出工具欄外,即可刪除該按鈕。將按鈕拖出工具欄外,即可刪除該按鈕。3.3.編輯按鈕位圖編輯按鈕位圖設(shè)置按鈕位
23、圖有以下兩種方法。設(shè)置按鈕位圖有以下兩種方法。l l 利用繪圖工具與調(diào)色板直接進行繪制利用繪圖工具與調(diào)色板直接進行繪制l l 先利用專用繪圖軟件制作,然后粘貼到按鈕上先利用專用繪圖軟件制作,然后粘貼到按鈕上visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 294.2.2 建立消息映射建立消息映射 通常,只需讓一個按鈕的通常,只需讓一個按鈕的idid值與同樣功能菜單項的值與同樣功能菜單項的idid值相同即可。值相同即可。 如果按鈕沒有對應(yīng)菜單項,則必須利用如果按鈕沒有對應(yīng)菜單項,則必須利用classwizardclasswizard
24、類向?qū)砑右粋€消息處理函數(shù)。類向?qū)砑右粋€消息處理函數(shù)。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 30【例例4.8】 編寫一個單文檔應(yīng)用程序編寫一個單文檔應(yīng)用程序li4_8。刪除默認工具。刪除默認工具欄上的欄上的【打印設(shè)置打印設(shè)置】按鈕,并在按鈕,并在【幫助幫助】按鈕前添加按鈕前添加【上上一頁一頁】和和【下一頁下一頁】2個按鈕,當用戶單擊這兩個按鈕后,個按鈕,當用戶單擊這兩個按鈕后,視圖中分別顯示文本視圖中分別顯示文本“這是這是上一頁上一頁按鈕!按鈕!”和和“這是這是下一頁下一頁按鈕!按鈕!”。visual c+程序設(shè)計與
25、應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 314.2.3 自定義工具欄的操作自定義工具欄的操作 向?qū)傻臉藴使ぞ邫诘南驅(qū)傻臉藴使ぞ邫诘膇did值為值為idr_mainframeidr_mainframe。 對一些功能復(fù)雜的應(yīng)用程序,需要創(chuàng)建多個不同的工具欄。對一些功能復(fù)雜的應(yīng)用程序,需要創(chuàng)建多個不同的工具欄。生成工具欄的基本步驟:生成工具欄的基本步驟: (1)添加工具欄資源)添加工具欄資源; (2)參照)參照mfcmfc應(yīng)用程序框架添加工具欄的方法,構(gòu)造一應(yīng)用程序框架添加工具欄的方法,構(gòu)造一個個ctoolbarctoolbar類的對象,調(diào)用類的
26、對象,調(diào)用ctoolbar:create( )ctoolbar:create( )或或createex( )createex( )函數(shù)創(chuàng)建工具欄窗口函數(shù)創(chuàng)建工具欄窗口; (3)調(diào)用)調(diào)用ctoolbar:loadtoolbar( )ctoolbar:loadtoolbar( )函數(shù)載入工具欄函數(shù)載入工具欄資源。資源。 除這些基本步驟之外,還可除這些基本步驟之外,還可以調(diào)用其他相關(guān)函數(shù)從而進以調(diào)用其他相關(guān)函數(shù)從而進一步改善工具欄。一步改善工具欄。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 321.創(chuàng)建工具欄窗口創(chuàng)建工具欄窗口
27、調(diào)用調(diào)用ctoolbar:create( )或或createex( )函數(shù)創(chuàng)建并初始函數(shù)創(chuàng)建并初始化工具欄窗口對象。若創(chuàng)建成功,函數(shù)返回化工具欄窗口對象。若創(chuàng)建成功,函數(shù)返回true,否則返,否則返回回false。2.裝載工具欄資源裝載工具欄資源 調(diào)用調(diào)用loadtoolbar( )函數(shù)裝載工具欄資源。用函數(shù)裝載工具欄資源。用create( )或者或者createex( )函數(shù)創(chuàng)建工具欄,其實只是獲得了一個窗口函數(shù)創(chuàng)建工具欄,其實只是獲得了一個窗口句柄,工具欄窗口中位圖按鈕的加載是靠句柄,工具欄窗口中位圖按鈕的加載是靠loadtoolbar( )函函數(shù)來完成的。若加載成功,將返回數(shù)來完成的。若
28、加載成功,將返回true,否則返回,否則返回false。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 333.設(shè)置工具欄風格設(shè)置工具欄風格 如果在調(diào)用初始化函數(shù)如果在調(diào)用初始化函數(shù)ctoolbar:create( )或者或者createex( )時設(shè)置的工具欄風格不滿足需要,可以再用時設(shè)置的工具欄風格不滿足需要,可以再用setbarstyle( )函數(shù)重新進行設(shè)置。函數(shù)重新進行設(shè)置。4.設(shè)置工具欄??刻匦栽O(shè)置工具欄停靠特性 設(shè)置工具欄??刻匦?,需要調(diào)用設(shè)置工具欄??刻匦?,需要調(diào)用enabledocking( )函數(shù)。函數(shù)。既要
29、調(diào)用既要調(diào)用ccontrolbar: enabledocking( )函數(shù)設(shè)置工具欄函數(shù)設(shè)置工具欄的??刻匦?,還要調(diào)用框架類的成員函數(shù)的??刻匦?,還要調(diào)用框架類的成員函數(shù)enabledocking( )函數(shù)來設(shè)置框架窗口以允許它的子窗口控制欄可以以何種函數(shù)來設(shè)置框架窗口以允許它的子窗口控制欄可以以何種方式???。不管一個框架窗口中有多少個子窗口控制欄,方式???。不管一個框架窗口中有多少個子窗口控制欄,該函數(shù)只需調(diào)用一次。該函數(shù)只需調(diào)用一次。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 345. 設(shè)置工具欄的初始??课恢迷O(shè)置工具欄
30、的初始停靠位置 通過調(diào)用通過調(diào)用cframewnd:dockcontrolbar( )函數(shù)定函數(shù)定位一個工具欄的初始??课恢?。位一個工具欄的初始停靠位置。6.移動工具欄移動工具欄 調(diào)用調(diào)用cframewnd:floatcontrolbar( )函數(shù)來移動、函數(shù)來移動、定位一個工具欄。定位一個工具欄。7. 工具欄隱顯控制工具欄隱顯控制 通過對函數(shù)通過對函數(shù)cwnd:setstyle( )的調(diào)用可以改變某些的調(diào)用可以改變某些工具欄窗口的風格,但該函數(shù)不能改變工具欄窗口的風格,但該函數(shù)不能改變ws_visible,只能通過父類只能通過父類cwnd的的showwindow( )成員函數(shù)來顯示成員函數(shù)來
31、顯示或隱藏工具欄?;螂[藏工具欄。 visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 35【例例4.9】編寫一個單文檔應(yīng)用程序編寫一個單文檔應(yīng)用程序li4_9。為該應(yīng)用程序創(chuàng)。為該應(yīng)用程序創(chuàng)建一個帶有建一個帶有“線線”、“圓圓”、“矩形矩形”和和“文本文本”4個按鈕個按鈕的工具欄,當用戶單擊工具欄上的按鈕時,在窗口中顯示的工具欄,當用戶單擊工具欄上的按鈕時,在窗口中顯示相應(yīng)的圖形。相應(yīng)的圖形。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 364.3 4.3 狀態(tài)欄狀
32、態(tài)欄 狀態(tài)欄實際上是一個窗口,一般分為幾個窗格,每個狀態(tài)欄實際上是一個窗口,一般分為幾個窗格,每個窗格顯示不同的信息。窗格顯示不同的信息。 使用使用appwizard創(chuàng)建的單文檔應(yīng)用程序,接受默認選項創(chuàng)建的單文檔應(yīng)用程序,接受默認選項時,生成的應(yīng)用程序自動創(chuàng)建帶有默認窗格的狀態(tài)欄。時,生成的應(yīng)用程序自動創(chuàng)建帶有默認窗格的狀態(tài)欄。visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 37 4.3.1 狀態(tài)欄類的繼承關(guān)系狀態(tài)欄類的繼承關(guān)系 在在mfc中,狀態(tài)欄的功能由中,狀態(tài)欄的功能由cstatusbar類實現(xiàn)。類實現(xiàn)。 cobject
33、ccmdtarget cwnd ccontrolbar cstatusbar visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 38 4.3.2 狀態(tài)欄類的成員函數(shù)狀態(tài)欄類的成員函數(shù) 成員函數(shù)名 功 能 create createex setindicators setpanetext commandtoindex getitemid getitemrect getpaneinfo getpanestyle getpanetext 創(chuàng)建一個狀態(tài)欄,并與狀態(tài)欄對象相聯(lián)系,同時初始化字體及高度 創(chuàng)建一個有附加風格的狀態(tài)欄 設(shè)置窗格 i
34、d 號 設(shè)置窗格文本 獲取給定 id 號的窗格索引 獲取與索引對應(yīng)的窗格 id 號 獲取給定索引的顯示矩形 獲取給定索引的窗格 id 號、風格和寬度 獲取給定窗格風格 獲取給定索引的窗格文本 visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 39 4.3.3 狀態(tài)欄操作狀態(tài)欄操作 利用利用mfc appwizardmfc appwizard向?qū)?chuàng)建應(yīng)用程序時,首先在向?qū)?chuàng)建應(yīng)用程序時,首先在cmainframecmainframe類中定義一個成員變量類中定義一個成員變量m_wndstatusbarm_wndstatusbar,它是
35、,它是狀態(tài)欄類狀態(tài)欄類cstatusbarcstatusbar的對象。其次在的對象。其次在mfcmfc應(yīng)用程序框架的應(yīng)用程序框架的實現(xiàn)文件實現(xiàn)文件mainfrm.cppmainfrm.cpp中,為狀態(tài)欄定義一個靜態(tài)數(shù)組中,為狀態(tài)欄定義一個靜態(tài)數(shù)組indicatorsindicators,如下所示:,如下所示: static uint indicators = id_separator, /顯示命令功能提示顯示命令功能提示 id_indicator_caps, /顯示大寫鎖定鍵狀態(tài)顯示大寫鎖定鍵狀態(tài) id_indicator_num, /顯示數(shù)字鎖定鍵狀態(tài)顯示數(shù)字鎖定鍵狀態(tài) id_indicat
36、or_scrl, /顯示滾動鎖定鍵狀態(tài)顯示滾動鎖定鍵狀態(tài);visual c+程序設(shè)計與應(yīng)用教程2021/11/25第第4 4章章 菜單、工具欄與狀態(tài)欄菜單、工具欄與狀態(tài)欄 40 這個全局的提示符數(shù)組這個全局的提示符數(shù)組indicatorsindicators中的每個元素中的每個元素代表狀態(tài)欄上一個窗格的代表狀態(tài)欄上一個窗格的idid值,這些值,這些idid在應(yīng)用程序的在應(yīng)用程序的串表資源串表資源string tablestring table中進行了說明。中進行了說明。 通過增加新的通過增加新的idid標識來增加用于顯示狀態(tài)信息的標識來增加用于顯示狀態(tài)信息的窗格。狀態(tài)欄顯示的內(nèi)容由數(shù)組窗格。狀態(tài)欄顯示的內(nèi)容由數(shù)組indicatorsindicators決定,需決定,需要在狀態(tài)欄中顯示的各窗格的標識符、位置以及個數(shù)要在狀態(tài)欄中顯示的各窗格的標識符、位置以及個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水穩(wěn)站股份合同協(xié)議書
- 簡短愛情協(xié)議書
- 地鐵kpi績效協(xié)議書
- 聚餐經(jīng)費協(xié)議書
- 繼續(xù)婚姻協(xié)議書
- 殯儀館公建民營協(xié)議書
- 肉毒注射協(xié)議書
- 道和生發(fā)協(xié)議書
- 聘用店長協(xié)議書
- 貸款配資協(xié)議書
- 湖北省武漢市部分學校2025屆高三第三次模擬考試數(shù)學試卷含解析
- 算力是人工智能的基礎(chǔ)設(shè)施
- 電信總經(jīng)理談服務(wù)
- 2024年-2025年電梯檢驗員考試題庫及答案
- 02J915 公用建筑衛(wèi)生間
- 混凝土攪拌站安全操作技術(shù)交底
- 獸用生物制品保藏、運輸管理和相應(yīng)的應(yīng)急預(yù)案制度
- 水域救援課件教學課件
- 學術(shù)論文文獻閱讀與機助漢英翻譯智慧樹知到答案2024年重慶大學
- (初級)航空油料特設(shè)維修員(五級)理論考試題庫-上(單選題)
- 尾礦庫安全規(guī)程
評論
0/150
提交評論