第6章菜單工具欄和狀態(tài)欄ppt課件_第1頁(yè)
第6章菜單工具欄和狀態(tài)欄ppt課件_第2頁(yè)
第6章菜單工具欄和狀態(tài)欄ppt課件_第3頁(yè)
第6章菜單工具欄和狀態(tài)欄ppt課件_第4頁(yè)
第6章菜單工具欄和狀態(tài)欄ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第6章菜單、工具欄和狀態(tài)欄章菜單、工具欄和狀態(tài)欄 6.1 菜單菜單 6.2 工具欄工具欄 6.3 狀態(tài)欄狀態(tài)欄 第第6章菜單、工具欄和狀態(tài)欄章菜單、工具欄和狀態(tài)欄 6.1 菜單菜單 6.2 工具欄工具欄 6.3 狀態(tài)欄狀態(tài)欄 6.1菜單菜單 (1 of 11) 對(duì)于菜單的顯示都遵循下列一些規(guī)則:對(duì)于菜單的顯示都遵循下列一些規(guī)則:若某菜單項(xiàng)標(biāo)題后有若某菜單項(xiàng)標(biāo)題后有“”,那么在點(diǎn),那么在點(diǎn)擊某菜單項(xiàng)會(huì)彈出一對(duì)話(huà)框。擊某菜單項(xiàng)會(huì)彈出一對(duì)話(huà)框。若某項(xiàng)菜單有子菜單,那么在該菜單項(xiàng)若某項(xiàng)菜單有子菜單,那么在該菜單項(xiàng)文本后有文本后有“”。菜單項(xiàng)需要助記符,用括號(hào)將帶下劃線(xiàn)菜單項(xiàng)需要助記符,用括號(hào)將帶下劃

2、線(xiàn)的字母括起來(lái)。助記符與的字母括起來(lái)。助記符與Alt構(gòu)成一構(gòu)成一個(gè)組合鍵,當(dāng)按住個(gè)組合鍵,當(dāng)按住“Alt鍵不放,鍵不放,再敲擊該字母時(shí),對(duì)應(yīng)的菜單項(xiàng)就會(huì)再敲擊該字母時(shí),對(duì)應(yīng)的菜單項(xiàng)就會(huì)被選中。被選中。若某項(xiàng)菜單需要快捷鍵的支持,則一般若某項(xiàng)菜單需要快捷鍵的支持,則一般將其列在相應(yīng)菜單項(xiàng)文本之后。任何將其列在相應(yīng)菜單項(xiàng)文本之后。任何時(shí)候按下快捷鍵,相應(yīng)的菜單命令都時(shí)候按下快捷鍵,相應(yīng)的菜單命令都會(huì)被執(zhí)行。會(huì)被執(zhí)行。 圖圖6.1 File菜單菜單 6.1菜單菜單 (2 of 11) 6.1.1 用編輯器設(shè)計(jì)菜單用編輯器設(shè)計(jì)菜單 編輯菜單編輯菜單 在菜單的空位置上雙擊鼠標(biāo)左鍵,則出現(xiàn)它的屬在菜單的空

3、位置上雙擊鼠標(biāo)左鍵,則出現(xiàn)它的屬性對(duì)話(huà)框,如圖。性對(duì)話(huà)框,如圖。 圖圖6.2 菜單編輯器菜單編輯器菜單的空位置圖圖6.3 菜單屬性對(duì)話(huà)框菜單屬性對(duì)話(huà)框6.1菜單菜單 (3 of 11) 6.1菜單菜單 (4 of 11) 需要注意的是:需要注意的是:當(dāng)菜單項(xiàng)的屬性中選中了當(dāng)菜單項(xiàng)的屬性中選中了Pop_up(該菜單包含子菜單該菜單包含子菜單)時(shí),時(shí),對(duì)話(huà)框中對(duì)話(huà)框中ID、Separator和和Prompt項(xiàng)無(wú)效。項(xiàng)無(wú)效。增加新的菜單項(xiàng)后,用戶(hù)可以用鼠標(biāo)將菜單項(xiàng)拖到其他位增加新的菜單項(xiàng)后,用戶(hù)可以用鼠標(biāo)將菜單項(xiàng)拖到其他位置,而當(dāng)菜單項(xiàng)位置改變時(shí),其屬性并不改變。置,而當(dāng)菜單項(xiàng)位置改變時(shí),其屬性并不

4、改變。 菜單項(xiàng)被拖動(dòng)的位置圖圖6.4 拖動(dòng)菜單項(xiàng)拖動(dòng)菜單項(xiàng)圖圖6.5 添加的菜單項(xiàng)添加的菜單項(xiàng)6.1菜單菜單 (5 of 11) 菜單命令的消息映射菜單命令的消息映射 例例Ex_Mmenu “成績(jī)輸入菜單項(xiàng)的映射。成績(jī)輸入菜單項(xiàng)的映射。(1) 進(jìn)入進(jìn)入MFC ClassWizard對(duì)話(huà)框,切換到對(duì)話(huà)框,切換到Message Maps頁(yè)面。頁(yè)面。(2) 從從“Class name列表中選擇列表中選擇CMainFrame,在,在IDs列表中選擇列表中選擇ID_SCORE_IN,然后在,然后在Messages框中選擇框中選擇COMMAND消息,如圖。消息,如圖。 圖圖6.6 消息的選擇消息的選擇6.

5、1菜單菜單 (6 of 11) (3) 單擊Add Function按鈕或雙擊COMMAND消息,輸入成員函數(shù)的名稱(chēng)。如圖6.7所示。(4) 單擊OK。選擇新增加的成員函數(shù),單擊Edit Code按鈕(或直接在函數(shù)名雙擊鼠標(biāo)左鍵),就可以在此成員函數(shù)中添加一些代碼。例如:void CMainFrame:OnScoreIn() / TODO: Add your command handler code hereAfxMessageBox(現(xiàn)在就輸入成績(jī)嗎?);(5)編譯并運(yùn)行。在應(yīng)用程序的頂層菜單上,單擊“成績(jī)輸入菜單項(xiàng)或按Alt+S組合鍵,如圖6.8所示。圖圖6.7 添加成員函數(shù)對(duì)話(huà)框添加成員

6、函數(shù)對(duì)話(huà)框圖圖6.8 菜單命令執(zhí)行的結(jié)果菜單命令執(zhí)行的結(jié)果6.1菜單菜單 (7 of 11) 6.1.2 使用鍵盤(pán)快捷鍵使用鍵盤(pán)快捷鍵 (1) 先打開(kāi)上例的項(xiàng)目工作區(qū)窗口中先打開(kāi)上例的項(xiàng)目工作區(qū)窗口中Accelerator的資源項(xiàng),的資源項(xiàng),雙擊雙擊IDR_MAINFRAME,如圖。,如圖。 圖圖6.9 示例示例Ex_Sdi的加速鍵資源的加速鍵資源最下端的空行6.1菜單菜單 (8 of 11) (2) 要建立一新的加速鍵,雙擊加速鍵列表的最下端的空行,如圖要建立一新的加速鍵,雙擊加速鍵列表的最下端的空行,如圖6.10,其中可設(shè)置的屬性如表,其中可設(shè)置的屬性如表6.2。(3) 在上述對(duì)話(huà)框中,選

7、擇在上述對(duì)話(huà)框中,選擇ID_SCORE_IN作為要設(shè)定快捷鍵的作為要設(shè)定快捷鍵的ID號(hào),單擊號(hào),單擊Next Key Typed,按下,按下Ctrl+1作為此加速鍵的鍵值。作為此加速鍵的鍵值。 圖圖6.10 “Accel Properities對(duì)話(huà)框?qū)υ?huà)框6.1菜單菜單 (9 of 11) 6.1.3 使用快捷菜單使用快捷菜單右鍵菜單右鍵菜單用資源編輯器和用資源編輯器和MFC庫(kù)的庫(kù)的CMenu:TrackPopupMenu函數(shù)函數(shù)可以創(chuàng)建快捷菜單??梢詣?chuàng)建快捷菜單。CMenu:TrackPopupMenu函數(shù)原型函數(shù)原型如下:如下:BOOL TrackPopupMenu( UINT nFlag

8、s, int x, int y, CWnd* pWnd, LPCRECT lpRect = NULL ); 其中:其中:x和和y表示菜單頂端表示菜單頂端(一般為左上角一般為左上角)的水平坐標(biāo)和垂直坐標(biāo)。的水平坐標(biāo)和垂直坐標(biāo)。pWnd表示彈出菜單的窗口。表示彈出菜單的窗口。lpRect是一個(gè)是一個(gè)RECT結(jié)構(gòu)或結(jié)構(gòu)或CRect對(duì)象指針,表示一個(gè)矩形對(duì)象指針,表示一個(gè)矩形區(qū)域,不在該區(qū)域單擊鼠標(biāo)時(shí),則彈出菜單消失;當(dāng)區(qū)域,不在該區(qū)域單擊鼠標(biāo)時(shí),則彈出菜單消失;當(dāng)lpRect為為NULL時(shí),若擊在菜單外面,菜單立刻消失。時(shí),若擊在菜單外面,菜單立刻消失。6.1菜單菜單 (10 of 11) 例例Ex

9、_Menu創(chuàng)建彈出菜單。創(chuàng)建彈出菜單。(1) 選擇選擇“Insert菜單菜單“Resource命令,為應(yīng)用程序添加一個(gè)新的菜單命令,為應(yīng)用程序添加一個(gè)新的菜單資源。資源。(2) 用菜單編輯器,為該菜單資源中的頂層菜單的第一項(xiàng)加一任意標(biāo)題用菜單編輯器,為該菜單資源中的頂層菜單的第一項(xiàng)加一任意標(biāo)題(實(shí)際實(shí)際上該標(biāo)題無(wú)任何作用上該標(biāo)題無(wú)任何作用),在此菜單項(xiàng)下依次添加如下表所示的菜單項(xiàng)。,在此菜單項(xiàng)下依次添加如下表所示的菜單項(xiàng)。(3) 將此菜單資源將此菜單資源ID號(hào)改為號(hào)改為IDR_MYFLOATMENU (默認(rèn)的默認(rèn)的ID號(hào)為號(hào)為 IDR_MENU1) 。(4) 按按Ctrl+W快捷鍵打開(kāi)快捷鍵打

10、開(kāi)ClassWizard,將出現(xiàn)一對(duì)話(huà)框,詢(xún)問(wèn)是,將出現(xiàn)一對(duì)話(huà)框,詢(xún)問(wèn)是“選擇一選擇一個(gè)已存在的類(lèi)個(gè)已存在的類(lèi)”,還是,還是“創(chuàng)建一個(gè)新類(lèi)創(chuàng)建一個(gè)新類(lèi)”。選擇。選擇“選擇一個(gè)已存在的類(lèi)選擇一個(gè)已存在的類(lèi)項(xiàng)并選定項(xiàng)并選定CMainFrame類(lèi)。類(lèi)。6.1菜單菜單 (11 of 11) (5) 在在CMainFrame類(lèi)中,選擇上表中所列的菜單類(lèi)中,選擇上表中所列的菜單ID,雙擊,雙擊COMMAND消息。消息。這里僅為菜單這里僅為菜單ID_MENU_SCOREIN映射映射COMMAND消息,添加代碼:消息,添加代碼:void CMainFrame:OnMenuScorein() AfxMessag

11、eBox(現(xiàn)在就輸入成績(jī)嗎?現(xiàn)在就輸入成績(jī)嗎?); (6) 在在CMainFrame類(lèi)加入類(lèi)加入WM_CONTEXTMENU消息處理函數(shù),代碼如下:消息處理函數(shù),代碼如下:void CMainFrame:OnContextMenu(CWnd* pWnd, CPoint point) CMenu menu;menu.LoadMenu(IDR_MYFLOATMENU);menu.GetSubMenu(0)- TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this);(7) 運(yùn)行并測(cè)試。在應(yīng)用程序的窗口客戶(hù)區(qū)中單擊鼠標(biāo)

12、右鍵,彈出如圖菜單。運(yùn)行并測(cè)試。在應(yīng)用程序的窗口客戶(hù)區(qū)中單擊鼠標(biāo)右鍵,彈出如圖菜單。 “成績(jī)打印菜單命令沒(méi)有消息處理函數(shù),因此它是灰顯的,用戶(hù)不能使用成績(jī)打印菜單命令沒(méi)有消息處理函數(shù),因此它是灰顯的,用戶(hù)不能使用它們。若用戶(hù)選中它們。若用戶(hù)選中“成績(jī)輸入菜單命令,則會(huì)執(zhí)行相應(yīng)的代碼。成績(jī)輸入菜單命令,則會(huì)執(zhí)行相應(yīng)的代碼。 圖圖6.13 快捷菜單快捷菜單第第6章菜單、工具欄和狀態(tài)欄章菜單、工具欄和狀態(tài)欄 6.1 菜單菜單 6.2 工具欄工具欄 6.3 狀態(tài)欄狀態(tài)欄 6.2工具欄工具欄 (1 of 6)6.2.1 使用工具欄編輯器使用工具欄編輯器 例:選擇例:選擇“File”“Open Works

13、pace”,創(chuàng)建單文檔應(yīng),創(chuàng)建單文檔應(yīng)用程序用程序Ex_Sdi 。在項(xiàng)目工作區(qū)窗口中選擇。在項(xiàng)目工作區(qū)窗口中選擇ResourceView標(biāo)簽,雙擊標(biāo)簽,雙擊“Toolbar項(xiàng)中的項(xiàng)中的IDR_MAINFRAME,則工具欄編輯器出現(xiàn)在主界面的,則工具欄編輯器出現(xiàn)在主界面的右邊,如圖。右邊,如圖。圖圖6.14 工具欄編輯器窗口工具欄編輯器窗口空按鈕空按鈕6.2工具欄工具欄 (2 of 6)可以對(duì)工具欄進(jìn)行的操作:可以對(duì)工具欄進(jìn)行的操作: (1) 創(chuàng)建一個(gè)新的工具欄按鈕創(chuàng)建一個(gè)新的工具欄按鈕在新建的工具欄中,最右端總有一個(gè)空按鈕,雙擊該在新建的工具欄中,最右端總有一個(gè)空按鈕,雙擊該按鈕彈出其屬性對(duì)話(huà)

14、框,在按鈕彈出其屬性對(duì)話(huà)框,在ID框中輸入其標(biāo)識(shí)符名稱(chēng)。單框中輸入其標(biāo)識(shí)符名稱(chēng)。單擊該按鈕,在編輯器的視窗內(nèi)進(jìn)行編輯,這個(gè)編輯就是繪擊該按鈕,在編輯器的視窗內(nèi)進(jìn)行編輯,這個(gè)編輯就是繪制一個(gè)按鈕位圖。制一個(gè)按鈕位圖。 (2) 移動(dòng)一個(gè)按鈕移動(dòng)一個(gè)按鈕在工具欄中移動(dòng)一個(gè)按鈕,用鼠標(biāo)左鍵點(diǎn)中它并拖動(dòng)在工具欄中移動(dòng)一個(gè)按鈕,用鼠標(biāo)左鍵點(diǎn)中它并拖動(dòng)至相應(yīng)位置即可。至相應(yīng)位置即可。 若在移動(dòng)一個(gè)按鈕的同時(shí),按下若在移動(dòng)一個(gè)按鈕的同時(shí),按下Ctrl鍵,則在新位置復(fù)鍵,則在新位置復(fù)制一個(gè)按鈕。制一個(gè)按鈕。 (3) 刪除一個(gè)按鈕刪除一個(gè)按鈕如果用戶(hù)拖動(dòng)它離開(kāi)工具欄位置,則此按鈕從工具欄如果用戶(hù)拖動(dòng)它離開(kāi)工具欄位

15、置,則此按鈕從工具欄中消失中消失(被刪除被刪除)。 但若選中按鈕后,單擊但若選中按鈕后,單擊Delete鍵并不能刪除一個(gè)按鈕,鍵并不能刪除一個(gè)按鈕,只是將按鈕中的圖形全部以背景色填充。只是將按鈕中的圖形全部以背景色填充。6.2工具欄工具欄 (3 of 6)可以對(duì)工具欄進(jìn)行的操作:可以對(duì)工具欄進(jìn)行的操作: (4) 在按鈕之間插入在按鈕之間插入/刪除空格刪除空格如果按鈕左側(cè)沒(méi)有空格,拖動(dòng)該按鈕向右移動(dòng)并當(dāng)覆蓋相如果按鈕左側(cè)沒(méi)有空格,拖動(dòng)該按鈕向右移動(dòng)并當(dāng)覆蓋相鄰按鈕的一半以上時(shí),釋放鼠標(biāo)鍵,則此按鈕左側(cè)出現(xiàn)空鄰按鈕的一半以上時(shí),釋放鼠標(biāo)鍵,則此按鈕左側(cè)出現(xiàn)空格。格。如果按鈕左側(cè)有空格而按鈕右側(cè)沒(méi)有

16、空格,拖動(dòng)該按鈕向如果按鈕左側(cè)有空格而按鈕右側(cè)沒(méi)有空格,拖動(dòng)該按鈕向左移動(dòng)并當(dāng)按鈕的左邊界接觸到前面按鈕時(shí),釋放鼠標(biāo)鍵,左移動(dòng)并當(dāng)按鈕的左邊界接觸到前面按鈕時(shí),釋放鼠標(biāo)鍵,則此按鈕右側(cè)將出現(xiàn)空格。則此按鈕右側(cè)將出現(xiàn)空格。如果按鈕左、右兩側(cè)均有空格,拖動(dòng)該按鈕向右移動(dòng)并當(dāng)如果按鈕左、右兩側(cè)均有空格,拖動(dòng)該按鈕向右移動(dòng)并當(dāng)接觸到相鄰按鈕時(shí),則此按鈕左側(cè)的空格保留,按鈕右側(cè)接觸到相鄰按鈕時(shí),則此按鈕左側(cè)的空格保留,按鈕右側(cè)的空格消失。相反,拖動(dòng)該按鈕向左移動(dòng)并當(dāng)接觸到前一的空格消失。相反,拖動(dòng)該按鈕向左移動(dòng)并當(dāng)接觸到前一個(gè)相鄰按鈕時(shí),則此按鈕左側(cè)的空格消失,右側(cè)的空格保個(gè)相鄰按鈕時(shí),則此按鈕左側(cè)的空

17、格消失,右側(cè)的空格保留。留。6.2工具欄工具欄 (4 of 6)可以對(duì)工具欄進(jìn)行的操作:可以對(duì)工具欄進(jìn)行的操作: (5) 設(shè)置工具欄按鈕的屬性設(shè)置工具欄按鈕的屬性雙擊某工具按鈕,就會(huì)彈出其屬性對(duì)話(huà)框,如下圖所示。雙擊某工具按鈕,就會(huì)彈出其屬性對(duì)話(huà)框,如下圖所示。圖圖6.15 工具欄按鈕屬性對(duì)話(huà)框工具欄按鈕屬性對(duì)話(huà)框6.2工具欄工具欄 (5 of 6)6.2.2 工具欄和菜單相結(jié)合工具欄和菜單相結(jié)合 例例Ex_T&M 將菜單項(xiàng)將菜單項(xiàng)ID_SCORE_IN與工具按鈕相與工具按鈕相結(jié)合。結(jié)合。(1) 在單文檔應(yīng)用程序在單文檔應(yīng)用程序Ex_Sid中,作如下操作;中,作如下操作;(2) 利用工

18、具欄編輯器設(shè)計(jì)一個(gè)工具按鈕,如圖;利用工具欄編輯器設(shè)計(jì)一個(gè)工具按鈕,如圖;(3) 雙擊剛才設(shè)計(jì)的鈕工具按鈕圖形,彈出該工具雙擊剛才設(shè)計(jì)的鈕工具按鈕圖形,彈出該工具按鈕的屬性對(duì)話(huà)框;在屬性對(duì)話(huà)框中,將工具按鈕按鈕的屬性對(duì)話(huà)框;在屬性對(duì)話(huà)框中,將工具按鈕的的ID號(hào)設(shè)為號(hào)設(shè)為ID_SCORE_IN,在,在Prompt框內(nèi)鍵入框內(nèi)鍵入“向系統(tǒng)輸入學(xué)生成績(jī)向系統(tǒng)輸入學(xué)生成績(jī)n成績(jī)輸入成績(jī)輸入”;圖圖6.16 工具欄按鈕的設(shè)計(jì)工具欄按鈕的設(shè)計(jì)6.2工具欄工具欄 (6 of 6)6.2.2 工具欄和菜單相結(jié)合工具欄和菜單相結(jié)合 例例Ex_T&M 將菜單項(xiàng)將菜單項(xiàng)ID_SCORE_IN與工具按鈕相與工

19、具按鈕相結(jié)合。結(jié)合。 (4) 編譯并運(yùn)行程序。在應(yīng)用程序的工具欄上,將編譯并運(yùn)行程序。在應(yīng)用程序的工具欄上,將鼠標(biāo)指針移至剛才設(shè)計(jì)的工具按鈕處,這時(shí)在狀態(tài)鼠標(biāo)指針移至剛才設(shè)計(jì)的工具按鈕處,這時(shí)在狀態(tài)欄上顯示出欄上顯示出“向系統(tǒng)輸入學(xué)生成績(jī)信息,若稍等向系統(tǒng)輸入學(xué)生成績(jī)信息,若稍等片刻后,還會(huì)彈出提示小窗口,顯示出片刻后,還會(huì)彈出提示小窗口,顯示出“成績(jī)輸入成績(jī)輸入字樣。字樣。第第6章菜單、工具欄和狀態(tài)欄章菜單、工具欄和狀態(tài)欄 6.1 菜單菜單 6.2 工具欄工具欄 6.3 狀態(tài)欄狀態(tài)欄 6.3狀態(tài)欄狀態(tài)欄 (1 of 9) 6.3.1 狀態(tài)欄的定義狀態(tài)欄的定義 用用AppWizard創(chuàng)建的創(chuàng)建

20、的SDI或或MDI應(yīng)用程序應(yīng)用程序框架中,有一個(gè)靜態(tài)的框架中,有一個(gè)靜態(tài)的indicators數(shù)組,數(shù)組,這個(gè)數(shù)組中的元素通常都是一些字符串資這個(gè)數(shù)組中的元素通常都是一些字符串資源的源的ID號(hào),它是在號(hào),它是在MainFrm.cpp文件中文件中被定義的,被被定義的,被MFC用作狀態(tài)欄的定義。用作狀態(tài)欄的定義。默認(rèn)的默認(rèn)的indicators數(shù)組包含數(shù)組包含4個(gè)元素,如下個(gè)元素,如下圖所示:圖所示:Static UINT indicators=ID_SEPARATOR,ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,圖圖6.17 indi

21、cators數(shù)組的定義數(shù)組的定義6.3狀態(tài)欄狀態(tài)欄 (2 of 9)6.3.2 狀態(tài)欄的常用操作狀態(tài)欄的常用操作增加和減少窗格增加和減少窗格狀態(tài)欄中的窗格可以分為信息行窗格和指狀態(tài)欄中的窗格可以分為信息行窗格和指示器窗格兩類(lèi)。示器窗格兩類(lèi)。若在狀態(tài)欄中增加一個(gè)信息行窗格,則在若在狀態(tài)欄中增加一個(gè)信息行窗格,則在indicators數(shù)組中的適當(dāng)位置中增加一個(gè)數(shù)組中的適當(dāng)位置中增加一個(gè)ID_SEPARATOR標(biāo)識(shí)即可;標(biāo)識(shí)即可;若在狀態(tài)欄中增加一個(gè)指示器窗格,則在若在狀態(tài)欄中增加一個(gè)指示器窗格,則在indicators數(shù)組中的適當(dāng)位置增加一個(gè)在數(shù)組中的適當(dāng)位置增加一個(gè)在字符串資源中定義過(guò)的資源字符

22、串資源中定義過(guò)的資源ID號(hào)即可;號(hào)即可;若在狀態(tài)欄中減少一個(gè)信息行或者指示器窗若在狀態(tài)欄中減少一個(gè)信息行或者指示器窗格,其操作與增加類(lèi)似,只需減少一個(gè)對(duì)格,其操作與增加類(lèi)似,只需減少一個(gè)對(duì)應(yīng)的數(shù)組元素即可。應(yīng)的數(shù)組元素即可。6.3狀態(tài)欄狀態(tài)欄 (3 of 9)6.3.2 狀態(tài)欄的常用操作狀態(tài)欄的常用操作在狀態(tài)欄上顯示文本在狀態(tài)欄上顯示文本有三種辦法可以在狀態(tài)欄窗格顯示文本信有三種辦法可以在狀態(tài)欄窗格顯示文本信息:息:(1) 調(diào)用調(diào)用CWnd:SetWindowText更新信更新信息行窗格息行窗格(或窗格或窗格0)中的文本。中的文本。若狀態(tài)欄變量為若狀態(tài)欄變量為m_wndStatusBar,則,

23、則m_wndStatusBar. SetWindowText(“消息消息”)語(yǔ)句將在第一語(yǔ)句將在第一個(gè)信息行窗格內(nèi)顯示個(gè)信息行窗格內(nèi)顯示“消息字樣。消息字樣。6.3狀態(tài)欄狀態(tài)欄 (3 of 9)6.3.2 狀態(tài)欄的常用操作狀態(tài)欄的常用操作在狀態(tài)欄上顯示文本在狀態(tài)欄上顯示文本有三種辦法可以在狀態(tài)欄窗格顯示文本信有三種辦法可以在狀態(tài)欄窗格顯示文本信息:息:(2) 手動(dòng)處理狀態(tài)欄的手動(dòng)處理狀態(tài)欄的ON_UPDATE_COMMAND_UI更新消息,更新消息,并在處理函數(shù)中調(diào)用并在處理函數(shù)中調(diào)用CCmdUI:SetText函數(shù)。函數(shù)。6.3狀態(tài)欄狀態(tài)欄 (3 of 9)6.3.2 狀態(tài)欄的常用操作狀態(tài)欄

24、的常用操作在狀態(tài)欄上顯示文本在狀態(tài)欄上顯示文本有三種辦法可以在狀態(tài)欄窗格顯示文本信有三種辦法可以在狀態(tài)欄窗格顯示文本信息:息:(3) 調(diào)用調(diào)用CStatusBar:SetPaneText函數(shù)函數(shù)更新任何窗格更新任何窗格(包括信息行窗格包括信息行窗格)中的文本。中的文本。此函數(shù)原型描述如下:此函數(shù)原型描述如下: BOOL SetPaneText( int nIndex, LPCTSTR lpszNewText, BOOL bUpdate = TRUE );其中:其中:nIndex表示設(shè)置的窗格的索引表示設(shè)置的窗格的索引(第一第一個(gè)窗格的索引為個(gè)窗格的索引為0);lpszNewText表示表示要顯

25、示的字符串;要顯示的字符串;bUpdate為為T(mén)RUE表示表示系統(tǒng)自動(dòng)更新顯示的結(jié)果。系統(tǒng)自動(dòng)更新顯示的結(jié)果。6.3狀態(tài)欄狀態(tài)欄 (4 of 9)例例Ex_Status 在狀態(tài)欄的最右邊兩個(gè)窗格中顯示出當(dāng)前鼠在狀態(tài)欄的最右邊兩個(gè)窗格中顯示出當(dāng)前鼠標(biāo)在窗口客戶(hù)區(qū)的位置。標(biāo)在窗口客戶(hù)區(qū)的位置。(1) 將前面的單文檔應(yīng)用程序?qū)⑶懊娴膯挝臋n應(yīng)用程序Ex_Sdi打開(kāi)或者新建一個(gè)打開(kāi)或者新建一個(gè)單文檔應(yīng)用程序;單文檔應(yīng)用程序;(2) 將項(xiàng)目工作區(qū)窗口切換到將項(xiàng)目工作區(qū)窗口切換到ResourceView頁(yè)面,雙擊頁(yè)面,雙擊“String Table項(xiàng)的項(xiàng)的“String Table圖標(biāo)。在字符串列表圖標(biāo)。在

26、字符串列表的最后一行空項(xiàng)上雙擊鼠標(biāo)左鍵,如圖的最后一行空項(xiàng)上雙擊鼠標(biāo)左鍵,如圖6.17所示。所示。(3) 該對(duì)話(huà)框中,可以指定相應(yīng)的該對(duì)話(huà)框中,可以指定相應(yīng)的ID和字符串值,這里和字符串值,這里加入兩個(gè)字符串資源加入兩個(gè)字符串資源ID_LEFT和和ID_RIGHT,其字符個(gè)數(shù),其字符個(gè)數(shù)的多少?zèng)Q定窗格的大小。如圖的多少?zèng)Q定窗格的大小。如圖6.18。圖圖6.17 字符串屬性對(duì)話(huà)框字符串屬性對(duì)話(huà)框添加的添加的字符串字符串圖圖6.18 添加的字符串資源添加的字符串資源6.3狀態(tài)欄狀態(tài)欄 (5 of 9)(4) 打開(kāi)MainFrm.cpp文件,將原先的indicators數(shù)組修改如下:static U

27、INT indicators =ID_SEPARATOR, / 第一個(gè)信息行窗格ID_SEPARATOR, / 第二個(gè)信息行窗格ID_LEFT,/ 第三個(gè)窗格ID_RIGHT,/ 第四個(gè)窗格;(5) 必須手動(dòng)添加消息處理函數(shù)原型。打開(kāi)Ex_SdiView.h文件,在AFX_MSG內(nèi)增加消息處理語(yǔ)句,ClassWizard以后允許訪(fǎng)問(wèn)和編輯該代碼。protected:/AFX_MSG(CEx_SdiView)afx_msg void OnUpdateXY(CCmdUI* pCmdUI);/AFX_MSGDECLARE_MESSAGE_MAP()6.3狀態(tài)欄狀態(tài)欄 (6 of 9)(6) 打開(kāi)Ex_SdiView.cpp文件,在其消息入口處手動(dòng)添加消息映射函數(shù): BEGIN_MESSAGE_MAP(CEx_SdiView, CView)/AFX_MSG_MAP(CEx_SdiView)ON_UPDATE_COMMAND_UI(ID_LEFT, OnUpdateXY)ON_UPDATE_COMMAND_UI(ID_RIGHT, OnUpdateXY)/AFX_MSG_MAP6.3狀態(tài)欄狀態(tài)欄 (7 of 9)(7

溫馨提示

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

評(píng)論

0/150

提交評(píng)論