程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ Builder初學問與答10

C++ Builder初學問與答10

編輯:C++入門知識

  10.菜單組件

  77)問:菜單是Windows常用的用戶界面。對於一個能夠實際應用的程序,菜單是必不可少的組成部分。C++Builder中是怎樣實現菜單的?

  答:C++Builder為我們提供了兩種菜單組件:一種是主菜單組件MainMenu;另一種是彈出菜單PopMenu組件。

  主菜單組件的作用是在窗體上生成菜單條。菜單組件剛放到窗體上時,菜單是不可見的,當雙擊它打開菜單編輯器並且增加了菜單項後,菜單條才出現在窗體的頂部。設計時的菜單條與運行時的菜單條完全一樣。

  下面我們介紹利用菜單編輯器進行菜單設計的過程。

  首先要打開菜單編輯器

  從組件模板上的Standard選項卡中選擇MainMenu組件,放置到窗體上。然後,用鼠標右鍵單擊菜單組件,然後在彈出菜單中選擇Menu Designer。當然,你也可以雙擊菜單組件打開菜單編輯器。

  被加亮顯示的小方框就是一個空白菜單項。

  接著要添加菜單項

  選中這個菜單項,這時對象編輯器中將出現這個菜單項的屬性。

  我們在菜單項的Caption屬性中輸入“文件(&File)”,其中“&F”可以生成一個快捷鍵,這樣用戶就可以通過鍵盤操作了,並且F下面出現了下劃線(注意:由於是系統原因,”&”一定要在英文狀態下輸入)。當我們輸入完標題並按下回車鍵時,C++Buildr會自動給這個菜單項賦一個名字,這裡的名字是N1。如果你不滿意這個名字可以修改Name屬性。

  添加完菜單項後會自動出現一個空白的子菜單項等待你輸入。

  現在菜單編輯器中的輸入焦點移到了這個空白子菜單項上,同時對象編輯器將對應顯示這個子菜單項的屬性。你可以在Caption屬性中輸入子菜單項的標題“打開(&Open)”,然後按下回車鍵。菜單編輯器會打開一個新的子菜單項,並把輸入焦點移動到這個子菜單項上。這樣,就可以給菜單項增加一系列的子菜單了。

  同樣方法添加退出菜單。

  要開始編輯下一個菜單項,可以用鼠標單擊菜單項“文件”的右邊的虛線框,它表示一個空白的菜單項。

  78)問:當菜單項中的子菜單項屬於不同類別時,有必要用分隔條把子菜單項進行分組,菜單組件是怎樣實現這個功能的?

  答:我們在退出和保存兩個菜單項中間加入選擇分隔條,在退出菜單項上點擊鼠標右鍵,從彈出菜單中選擇Insert,這時,一個空白的菜單項就插入了,將它的Caption屬性設置為“–”這個減號符就可以了。

  79)問:那麼,我們又怎樣給菜單項設置熱鍵呢?

  答:每個菜單項都有一個屬性ShortCut,利用這個屬性就可以給這個菜單項設置熱鍵了。現在我們給打開文件菜單項添加熱鍵。單擊這個菜單項,選擇屬性ShortCut,出現一個下拉菜單,其中包括一系列的熱鍵的組合。選擇Ctrl+O,這個熱鍵中就被賦給了退出菜單項。

  80)問:快捷鍵與熱鍵這兩個概念我已經弄糊塗了,您能給我解釋一下嗎?

  答:好的,快捷鍵與熱鍵相同的方面是,它們都是通過鍵盤來訪問。

  一個菜單項可以同時擁有快捷鍵和熱鍵。所謂快捷鍵通常只是一個字母,而熱鍵通常是一個組合鍵。另外它們的激活方式不一樣,例如一個子菜單項有一個快捷鍵O和一個熱鍵Ctrl+O,那麼使用熱鍵就可以直接激活這個子菜單項,而使用快捷鍵你必須首先選中該子菜單項上一層的菜單項,然後按下快捷鍵才可以激活這個子菜單項。

  81)問:您講解的菜單到現在還只有菜單項和子菜單兩級,如果我希望子菜單還有自己的子菜單,應該怎麼辦?

  答:這種嵌套的菜單項實際上就是級聯菜單。這裡,我們給顏色菜單項添加子菜單項,選擇顏色菜單,單擊鼠標右鍵,在彈出的快捷菜單中選擇Create Submenu命令,這時在子菜單項中將出現一個指向右的箭頭,同時還產生了一個級聯菜單。

  當然,你也可以用Ctrl+方向鍵右鍵。

  82)問:很多菜單項的旁邊有復選標記,請問菜單編輯器是否提供了這個功能呢?

  答:復選標記就是在菜單項的標題的前面出現的勾號。復選標記經常用於一些狀態設置的菜單項,當處於該狀態時就會出現復選標記,否則復選標記消失。

  現在,我們給回繞菜單項設置復選標記,在對象編輯器中把它的屬性Checked改為True,這樣這個菜單項就會顯示復選標記。要取消復選標記可以把Checked屬性再次設置為False。

  83)問:我有時要設計一組互相排斥的菜單項,也就是單選菜單項,應該怎麼辦呢?

  答:要使一組菜單項成為單選菜單項,必須滿足幾個條件。

  首先,這一組菜單必須在同一個下拉菜單中。

  其次,它們的RadioItem屬性必須都設置成了True。

  最後,它們的GroupIndex屬性必須相同。

  這一組中唯一被選中的菜單項的前面將會顯示一個圓點標記。

  84)問:我怎樣使菜單項失效呢?

  答:只要把菜單項的Enabled屬性設置為False,就可以使菜單項失效,這時菜單項是灰色的。在設計時和運行時你可以任意設置菜單項的Enabled屬性。

  85)問:菜單項有些什麼常用的事件呢?

  答:菜單項只有一種事件OnClick,在實際編輯中這個事件是一定要響應的。

  86)問:我們一般在主菜單之外還會提供一個快捷菜單,就像C++Builder一樣,在窗體中單擊右鍵隨時都可以打開一個彈出菜單。C++Builder是怎樣實現彈出菜單的?

  答:彈出菜單有時候又稱為快捷菜單。彈出菜單與主菜單的區別是:主菜單是固定的,而彈出菜單是活動的;主菜單有多組菜單項,而彈出菜單只有一組。彈出菜單的設計方法與主菜單基本相同,也是使用菜單編輯器來完成的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved