1. 程式人生 > >VS2013/MFC程式設計入門之三十二(選單:VS2013選單資源詳解)

VS2013/MFC程式設計入門之三十二(選單:VS2013選單資源詳解)

前面我們已經講完了所有的常用控制元件,本節開始為大家講解選單的概念及使用。

       選單簡介

       選單可以分為下拉式選單和彈出式選單。

       下拉式選單一般在視窗標題欄下面顯示,大家還記得我們在VS2013/MFC程式設計入門之一(利用MFC嚮導生成單文件應用程式框架)中建立的HelloWorld單文件工程嗎?它的執行結果視窗的標題欄下就是下拉式選單。下拉式選單通常是由主選單欄、子選單及子選單中的選單項和分隔條所組成的。

       彈出式選單一般可以通過單擊滑鼠右鍵等操作顯示。它的主選單不可見,只顯示子選單。

       VS2013選單資源詳解

       選單也可以在VS2013的資源檢視中直接建立編輯。我們先來建立一個新的

MFC單文件工程,具體看看選單的組成結構及各種標記的意義。

       按照VS2013/MFC程式設計入門之一中的步驟建立一個名為“Example32”的MFC單文件工程。開啟資源檢視,展開Example32->Example32.rc->Menu,我們可以看到有一個ID為IDR_MAINFRAME選單資源,雙擊開啟,選單資源顯示如下圖:


       上邊包含“檔案”的一欄是主選單欄,點選檔案”彈出子選單,可以看到子選單中有多個選單項和分隔條。選單項中含有“...”則表示點選後會彈出對話方塊。

       除了這些,我們還注意到,很多選單項的標題文字中都有一個字母帶下劃線,帶下劃線的字母為熱鍵,例如,主選單欄上的“檔案”中字母“F”帶下劃線,F就是熱鍵,程式執行並顯示視窗時,在鍵盤上點選Alt+F就等同於直接點選單項檔案,彈出檔案下的子選單後,點選“開啟”的熱鍵O就可以實現與直接點選單項開啟相同的功能。

       那麼熱鍵是如何定義的呢?我們可以看下“檔案”選單項的屬性,Caption為“&File”,很明顯,只要在要定義為熱鍵的字母前加&就可以了。

       有些選單項的右側還顯示了一些字串,例如,“新建”的右側顯示有“Ctrl+N”,這些代表的是快捷鍵,也就是“新建”選單項的快捷鍵是Ctrl+N,“開啟”選單項的快捷鍵是Ctrl+O,用這些組合鍵就能實現與相應選單項一樣的功能。

       快捷鍵如何定義?我們再來看看開啟”選單項的Caption屬性,為“&開啟...\tCtrl+O”,這裡的\t表示在顯示前面的文字後跳格再顯示快捷鍵Ctrl+O,但這樣設定其Caption屬性只是能顯示出快捷鍵,要實現快捷鍵的功能還需要在Accelerator資源中設定。資源檢視中展開Example32.rc->Accelerator,雙擊開啟下面的IDR_MAINFRAME,如下圖:

VS2010 Accelerator

       Accelerator中有四列,分別為:ID、Modifier、Key和Type。ID就是選單項的ID,Modifer和Key就代表了組合鍵。例如,開啟選單項的ID為ID_FILE_OPEN,Modifer為“Ctrl”,Key為“O”。

       VS2013選單資源編輯

       我們試著在Example32的IDR_MAINFRAME選單資源中新增選單項。

       在主選單欄的“幫助”選單項上點右鍵,彈出右鍵選單,選擇“新插入”,就在“幫助”選單項前添加了一個空的選單項,我們可以直接在其中輸入標題,也可以在屬性頁中設定Caption屬性,標題設為“&工具”。

       然後編輯工具下子選單的第一個選單項,標題設為“&畫圖\tCtrl+D”,即熱鍵為D,快捷鍵為Ctrl+D。其ID預設為ID_TOOLS_DRAW。為了實現快捷鍵的功能,還需要編輯Accelerator,開啟Accelerator,在最下面的空白行中,ID選擇為ID_TOOLS_DRAW,Modifier選擇“Ctrl”,Key輸入“D”,這樣就設定好了快捷鍵。

       最終的選單資源如下圖:


       本節內容就是這些了,主要是關於選單的一些基礎知識,比較好理解。歡迎大家繼續關注VS2013/MFC程式設計入門教程,關注本網站。