DuiVision開發教程(19)-菜單
阿新 • • 發佈:2017-06-16
int emd 下拉 使用 studio tty .text 字體 tag
DuiVision菜單類是CDuiMenu。有兩種顯示的位置,一種是在窗體頂部某個button點擊後能夠下拉一個菜單,還有一種是托盤圖標的右鍵菜單。
窗體中的菜單定義方式是xml文件裏設置某個button的action屬性,以menu:開頭。後面是菜單的XML文件名稱或XML定義名,比如以下這樣定義:
<imgbtn name="button.menu" pos="-110,0,-77,29" skin="IDB_BT_MENU" tip="菜單" action="menu:mainmenu.xml"/>
托盤菜單默認是依照resource.xml中定義的menu_tray指向的XML文件來載入菜單。
兩種方式載入的菜單定義XML文件格式都是同樣的,參考前面XML說明章節的演示樣例。
菜單類的屬性例如以下:
屬性名 | 類型 | 說明 |
---|---|---|
width | 數字 | 菜單窗體寬度 |
item-height | 數字 | 每一個菜單項的高度 |
left | 數字 | 菜單左側圖標區的寬度 |
sep-height | 數字 | 菜單分隔線的高度 |
font | 字符串 | 字體 |
fontwidth | 數字 | 字體寬度 |
frame-width | 數字 | 菜單項距離邊框的寬度 |
top-height | 數字 | 菜單項頂部距離邊框的高度 |
bottom-height | 數字 | 菜單項底部距離邊框的高度 |
crrowhover | 顏色 | 菜單項背景顏色(鼠標移動到菜單項時候的顏色),假設不設置則使用默認顏色 |
img-rowhover | 圖片 | 菜單項背景圖片(鼠標移動到菜單項時候的背景圖片),優先級比背景顏色高 |
img-popuparrow | 圖片 | 彈出菜單箭頭圖片 |
經常使用函數例如以下:
函數 | 是否虛函數 | 說明 |
---|---|---|
LoadXmlFile | 否 | 載入菜單XML文件 |
AddMenu | 否 | 動態加入菜單項 |
AddSeparator | 否 | 動態加入菜單分隔線 |
SetItemTitle | 否 | 預設值菜單項的標題 |
SetItemVisible | 否 | 預設值菜單項的可見性 |
SetItemDisable | 否 | 預設值菜單項的禁用狀態 |
SetItemCheck | 否 | 預設值菜單項的檢查標誌 |
SetMenuPoint | 否 | 刷新全部菜單項的位置信息 |
GetParentMenu | 否 | 獲取父菜單對象 |
GetHoverMenuItem | 否 | 獲取當前激活菜單項對象 |
菜單中載入的每一個菜單項的控件是CMenuItem類。控件類型名是menuitem,菜單項的屬性例如以下:
屬性名 | 類型 | 說明 |
---|---|---|
seperator | 0|1 | 是否分隔線 |
select | 0|1 | 是否選擇(假設是checkbox或radiobutton類型的菜單項,此屬性必須設置為1) |
check | 0|1 | 是否處於選中狀態 |
group | 字符串 | 廣播button所屬的組名,同樣組名的廣播button是屬於一組的。能夠聯動。一組中僅僅有一個會處於選中狀態 |
value | 字符串 | 廣播button的值,一組廣播button中的多個button值是不一樣的。當獲取這一組廣播button的值時候,獲取的就是選中的button的值 |
menu | 字符串 | 引用其它的菜單的名字(通過資源定義能夠找到的菜單的名字),設置了這個屬性,則會將相應的菜單嵌入當前菜單中 |
image | 圖片 | 菜單項左側的小圖片,假設是彈出菜單,而且沒有設置菜單的img-popuparrow屬性。則image屬性表示菜單項右側的箭頭圖片 |
img-count | 數字 | 設置菜單項左側圖片是由幾個並列的小圖片組成的 |
taskmsg | 0|1 | 是否通過任務方式運行菜單處理函數,假設彈出菜單的處理函數中有堵塞或等待的操作(比如打開一個對話框),則運行過程中彈出菜單可能會由於失去焦點而將自身的對象刪除,這樣的情況下就須要通過任務方式運行菜單處理函數,任務方式是將操作插入任務隊列。由任務隊列線程再去運行菜單處理函數 |
菜單項類的經常使用函數例如以下:
函數 | 是否虛函數 | 說明 |
---|---|---|
SetCheck | 否 | 設置是否選擇 |
GetCheck | 否 | 獲取是否選擇的狀態 |
IsSeparator | 否 | 推斷是否分隔線 |
SetGroupName | 否 | 設置廣播button組的名字 |
GetGroupName | 否 | 獲取廣播button組的名字 |
GetValue | 否 | 獲取廣播button的值 |
GetGroupValue | 否 | 獲取廣播button組的值 |
ResetGroupCheck | 否 | 刷新父控件以下全部同一個組的RadioButton控件的狀態 |
菜單界面示比例如以下:
DuiVision開源碼下載地址(github):https://github.com/blueantst/DuiVision
藍螞蟻工作室主頁:http://www.blueantstudio.net
DuiVision QQ群:325880743
微信公眾號:blueantstudio 或搜索 藍螞蟻工作室
DuiVision開發教程(19)-菜單