freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο蟮某绦蛟O(shè)計語言——c課件--第6章(已修改)

2025-01-19 01:57 本頁面
 

【正文】 返回 1 第六章 菜單、工具欄和狀態(tài)欄 本章導(dǎo)讀 掌握菜單的創(chuàng)建步驟和方法 , 如何進(jìn)行命令消息的映射和編寫相應(yīng)的程序代碼 。 掌握 CMenu類及其常用成員函數(shù)的功能和使用方法 , 掌握利用這些成員函數(shù)創(chuàng)建快捷菜單和實現(xiàn)動態(tài)增加或減少菜單項 。 掌握工具欄的創(chuàng)建方法和步驟 , 如何將工具欄的功能與菜單的功能相對應(yīng) 。 掌握創(chuàng)建狀態(tài)欄的方法和步驟 。 學(xué)習(xí)和掌握 CMenu類 、 CStatusBar類 、 CToolBar類 、CCmdUI類及常用成員函數(shù)的功能和使用 。 菜單 、 工具欄和狀態(tài)欄是 Windows應(yīng)用程序中最重要的三個用戶界面元素 , 是應(yīng)用程序設(shè)計中不可缺少的步驟 。 返回 2 創(chuàng)建菜單 菜單是一系列命令的列表 , 是最常用的命令輸入方式 。在 Windows中 , 幾乎所有的命令操作都與菜單有關(guān) 。 Windows應(yīng)用程序中的菜單是按照一定層次來進(jìn)行組織的,包括菜單項和彈出菜單,其中彈出菜單又可以包括菜單項和其他的彈出菜單。 菜單中的每一個菜單項都由 菜單項名 和 命令 ID號 兩個基本要素組成 。 在菜單資源中 , 每個菜單項都必須有一個唯一的命令 ID號來對它進(jìn)行標(biāo)識 , 這個 ID號是系統(tǒng)在對菜單項進(jìn)行識別時使用的 。 對于用戶而言 , 菜單項的標(biāo)識是利用它所屬的彈出菜單和菜單項的句子來標(biāo)識的 ,比如 ID_FILE_OPEN, 其所屬的彈出菜單是 【 文件 】 , 菜單項名稱為 【 打開 】 。 返回 3 創(chuàng)建菜單可以有幾種方法 , 最簡單的方法是用菜單資源編輯器進(jìn)行設(shè)計 。 在這里 , 我們把第五章關(guān)于模式對話框的例子進(jìn)行改造 , 使對話框的彈出方式由在窗口中雙擊鼠標(biāo)改為由單擊某個菜單命令實現(xiàn) 。 具體步驟如下:步驟一: 在 Visual C++ , 選 【 File】 菜單中的 【 Open Workspace】 菜單項 , 打開已創(chuàng)建的 “ ” 文件 。 步驟二: 在工作區(qū)窗口中選擇 【 Resource View】 選項卡,展開 【 Dialog Resources】 目錄,再展開 【 Menu】 文件 ,將會看到菜單 IDR_MAINFRAME。 步驟三: 雙擊 IDR_MAINFRAME,將在菜單資源編輯器中打開菜單資源。 步驟四: 在主菜單中增加一個 【 顯示 】 菜單。用鼠標(biāo)雙擊主菜單最右邊的空菜單項,或者用鼠標(biāo)右擊,在彈出的快捷菜單中選擇 【 Properties】 菜單項。系統(tǒng)將彈出屬性對話框。 返回 4 在 【 Caption】 欄中輸入 “ 顯示 ( amp。P) ” , 括號中的 amp。P表示緊跟在它后面的字母 “ P” 是助記符 , 這樣 , 在程序運行過程中 , 就可以用 Alt+P鍵來激活 【 顯示 】 菜單 。 按【 Enter】 鍵繼續(xù) 。 這時 , 在主菜單中將增加一個 “ 顯示 ” 菜單 , 在助記符P下面有下劃線 。 同時 , 在生成的菜單的右面和下面各出現(xiàn)一個新的菜單或菜單項 , 可以繼續(xù)添加新的菜單或菜單項 。 步驟五: 在 【 顯示 】 菜單中增加一個 【 個人資料 】 菜單項 。 用鼠標(biāo)右鍵單擊 【 顯示 】 菜單中的空菜單項 , 在彈出菜單中選擇 【 Properties】 選項 。 單擊屬性對話框左上角的 “ 圖釘 ” 按鈕 , 把對話框 “ 釘 ” 在屏幕上 。 在屬性對話框的 【 Caption】 欄中輸入 “ 個人資料 ( amp。D) ” 。 返回 5 對于 【 個人資料 】 菜單項 , Visual C++ 自動分配一個 ID號 。 單擊其他菜單項或者屏幕的其他部分 , 再選中 【 個人資料 】 菜單項 , 系統(tǒng)在 【 ID】 欄中顯示出為該菜單項分配的 ID 號 , 其 一 般 格 式 為MENUITEMxxxxx(xxxxx代表一個整數(shù) )。 【 Prompt】 框中的文本是光標(biāo)處于菜單項時 , 狀態(tài)欄顯示的幫助信息 在菜單項屬性對話框的 【 General】 選項卡中 , 各選項的含義如下圖所示 。 步驟六: 用鼠標(biāo)左鍵按住 【 顯示 】 菜單 , 將其拖到 【 編輯 】 與 【 幫助 】 菜單中間 。 這樣,利用菜單資源編輯器,我們就很輕松地創(chuàng)建了一個標(biāo)準(zhǔn)的 Windows菜單。 返回 6 項目 含義 ID Caption Separator Checked Pop_up Grayed Inactive Help Break Prompt 菜單的資源 ID號 菜單項的標(biāo)題文本 , 當(dāng)其中某一字母的前面含有 amp。符號時 , 則該字母與 Alt鍵構(gòu)成組合鍵 選中時 , 則相應(yīng)的菜單項是一個分隔符或一條水平線 選中時 , 則相應(yīng)的菜單項前顯示一個選中標(biāo)記 “ √ ” 選中時 , 表示該菜單項含有彈出式子菜單 選中時 , 表示該菜單項呈灰色顯示 , 該菜單項被禁用選中時 , 表示該菜單項沒有被激活 , 用戶不能選用 選中時 , 表示該菜單項在程序運行時被放于頂層菜單的最右端 其默認(rèn)值為 None, 表示菜單項按常規(guī)形式顯示 。 該項的取值還可為 Column或 Bar, 指明當(dāng)光標(biāo)移到該菜單項時在狀態(tài)欄上顯示的提示 表 菜單 General屬性對話框的各項含義 返回 7 2. 建立快捷鍵 在 Windows應(yīng)用程序中的某些菜單項后面有一個組合鍵 ,表示一個快捷鍵 ( shortcut key) , 在程序運行過程中 ,如果用戶按下了該組合鍵 , 則相應(yīng)的菜單命令就會被執(zhí)行 。 當(dāng)然 , 若要使用快捷鍵選擇某個菜單項 , 就必須事先對其作出定義 。 現(xiàn)在我們來為剛才創(chuàng)建的菜單添加快捷鍵 , 具體步驟如下: 步驟一: 在工作區(qū)窗口的 【 Resource View】 選項卡中 ,雙擊 【 Accelerator】 文件夾 , 雙擊 IDR_MAINFRAME,則系統(tǒng)會彈出一個加速器表 。 步驟二: 在加速器表中瀏覽一下 , 發(fā)現(xiàn) Ctrl+D還沒有被使用 , 我們就把 Ctrl+D設(shè)置為菜單項 【 個人資料 】 的快捷鍵 。方法是雙擊加速器表末尾的空行 , 將彈出快捷鍵的屬性對話框 ( Accel Properties) 。 返回 8 在屬性對話框 ( Accel Properties) 中 , 各項的含義如表 。 表 Accel Properties對話框中各選項的含義 選項 含義 ID Modifiers Type Key Next Key Typed 為了能使設(shè)定的快捷鍵與某個菜單項的功能相對應(yīng),從中選擇所需的菜單資源 ID號 用來選擇 Ctrl、 Alt、 Shift鍵是否為快捷鍵的組成鍵 用來確定快捷鍵的值是虛擬鍵 (VirKey)還是 ASCII 是指啟動快捷鍵的鍵盤按鍵 單擊此按鈕時,用戶所按的任何按鍵將成為快捷鍵的鍵值 返回 9 步驟三: 在對話框中的 【 ID】 下拉列表中選擇【 ID_DISPLAY_DATA】 選項 , 當(dāng)選中 ID號時 , 【 ID】框中同時顯示出此 ID 號對應(yīng)的整數(shù) , 如ID_DISPLAY_DATA=32771。 步 驟 四 : 在 【 Key】 列 表 框 中 輸 入 “ D” , 確認(rèn)【 Modifiers】 欄中的 【 Ctrl】 復(fù)選框被選中 , 而且 【 Alt】和 【 Shift】 都未被選中;或者 , 直接單擊 【 Next Key Typed】 按鈕 , 按下 Ctrl+D組合鍵放開 , 此時系統(tǒng)會自動記錄所按下的 Ctrl+D鍵為所要設(shè)定的組合鍵 。 按 【 Enter】鍵繼續(xù) 。 步驟五: 為了在 【 顯示 】 菜單中提示 【 個人資料 】 菜單項的快捷鍵 , 可以返回 , 將 【 Caption】框中的內(nèi)容修改為 “ 個人資料 (D)\tCtrl+D” 。 這樣 , 我們就建立了一個完整的菜單資源 。 返回 10 3 菜單功能的實現(xiàn) 在 MFC框架中 , 菜單命令消息是按照一定的 順序 進(jìn)行傳遞的 。 對于一個單文檔應(yīng)用程序 , 消息傳遞的順序為:視圖類 → 文檔類 → 框架類 → 應(yīng)用程序類 。 因此 , 如果我們在視圖類和文檔類中同時定義了某個菜單項的消息映射接口時 , 由于消息首先傳遞給視圖類 , 在視圖類中對此消息做出了響應(yīng) , 所以 , 文檔類中定義的此菜單項的消息映射函數(shù)就無法執(zhí)行 。 在菜單資源中 , 我們定義了 MFC如何來構(gòu)造菜單的結(jié)構(gòu) , 同 時 還 指 定 了 菜 單 的 資 源 ID 號 , MFC 通過ClassWizard會自動把菜單和相應(yīng)的框架窗口聯(lián)系在一起 。但除了由系統(tǒng)產(chǎn)生的少量代碼外 , MFC不能自動地對程序的菜單項進(jìn)行響應(yīng) , 必須用手工實現(xiàn) 。 返回 11 對 于 每 個 菜 單 項 , 系 統(tǒng) 提 供 了 COMMAND 和UPDATE_COMMAND_UI兩種消息可供選擇: ( 1) COMMAND消息需要用戶的干預(yù) , 如單擊 、 雙擊等操作; ( 2) UPDATE_COMMAND_UI消息系統(tǒng)會自動進(jìn)行響應(yīng) ,通過它可以實現(xiàn)對菜單項外觀的動態(tài)管理 。 例如 , 設(shè)計人員可以使菜單有效 、 無效或給菜單項動態(tài)添加檢查標(biāo)記等 。 可以利用 ClassWizard同時設(shè)置這兩種消息 , 但是在實際編程中 , 必須為每個菜單項提供有關(guān) WM_COMMAND類型消息映射接口 。 下面 , 我們在視圖類中對前面已建立的 “ 個人資料( amp。D) ” 菜單項的消息做出響應(yīng) 。 具體步驟如下: 返回 12 步驟一: 選擇 【 View】 菜單中的 【 ClassWizard】 菜單項 ,彈出 【 MFC ClassWizard】 對話框 。 步驟二: 在 【 MFC ClassWizard】 對 話 框 中 , 選擇【 Message Maps】 選項卡 。 在 【 Class name】 下拉列表框中 , 選擇類 CDialogView;在 【 Object Ids】 中單擊選擇 ID_DISPLAY_DATA 選項;在 【 Messages】 欄中將出現(xiàn)COMMAND和 UPDATE_COMMAND_UI兩個選項 , 選中其中的 COMMAND。 步驟三: 單擊對話框右側(cè)的 【 Add Function】 按鈕 , 系統(tǒng)將會彈出 【 Add Member function】 對話框 。 系統(tǒng)將自動生成一個缺省名稱為 OnDisplayData的映射函數(shù)亦可另取別的名稱 , 在此取缺省名稱 , 單擊 【 OK】 按鈕繼續(xù) 。 步驟四: 單擊 【 Edit Code】 按鈕退出 【 MFC ClassWizard】 對話框 , 并編輯新增加的函數(shù) OnDisplayData。 返回 13 經(jīng)過以上操作完成后 , Visual C++會對程序中的一些程序文件的代碼進(jìn)行必要的修改 , 其中粗體部分的代碼是由 ClassWizard自動添加的代碼 。 1. 在 CDialogView類的定義文件 射部分將會改變?yōu)椋? // Generated message map functions protected: //{{AFX_MSG(CDialogView) afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point)。 afx_msg void OnDisplayData()。 //ClassWizard自動添加的 //}}AFX_MSG DECLARE_MESSAGE_MAP() }。 返回 14 其中: //{{AFX_MSG(CDialogView) ?? //}}AFX_MSG 是 ClassWizard分別用來識別命令消息處理函數(shù)定義的起始標(biāo)記和結(jié)束標(biāo)記 , 在 AFX_MSG(CDialogView)后面括號內(nèi)的 CDialogView表示是處理該消息的類 。 2. 在 CDialogView類的實現(xiàn)文件 映射部分也進(jìn)行了一些修改: BEGIN_MESSAGE_MAP(CDialogView, CView) //{{AFX_MSG_MAP(CDialogView) 返回 15 ON_WM_LBUTTONDBLCLK() ON_COMMAND(ID_DISPLAY_DATA, OnDisplayData) //
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1