[翻譯]-Windows CE 程序設計 (3rd 版)--5.2 公共控件(七)

配置單獨帶區                                                                                                翻譯:tellmenow

進行到這裏時,命令帶控件已經創建,單獨單區已經加到控件中了。接下來我們有更多的任務要做,就是去配置每個帶區中單獨的命令條控件。(實際上,配置命令條控件比起前面講述的命令條要略微複雜一些。)

可以使用下面的函數來獲取帶區中的命令條句柄:
HWND CommandBands_GetCommandBar (HWND hwndCmdBands, UINT uBand);
uBnad是包含該命令條的帶區的基於0的索引。當命令帶控件被初始化時調用該函數的話,索引值直接同帶區加到控件的順序相關聯。然而,一旦用戶有機會拖拽帶區到一個新的順序,那您的應用程序必須通過發送RB_IDTOINDEX消息給命令帶控件,以獲取索引值,如下所示:
nIndex = SendMessage (hwndCmdBands, RB_INTOINDEX, ID_BAND,0);

這個消息對管理帶區是很重要的,因爲許多函數和消息都需要使用帶區索引來識別帶區。問題在於索引值是不固定的,因爲用戶移動帶區導致索引值變化。不要期望索引值是連貫的。作爲一個規則,在沒有用RB_IDTOINDEX查詢索引值之前,不要盲目使用索引值。

一旦您獲得命令條窗口句柄,使用標準的命令條控件函數和消息,就可以很簡單地把菜單或者按鈕加到命令條中了。大部分情況下,在第一個命令條中只加入菜單,在第二個中只加入按鈕,將其它控件加到第三個及後續命令條中。

下面的代碼完成了前面提到的創建過程。首先初始化了頭兩個帶區中的命令條控件。因爲第三個帶區有編輯控件,所以不需要初始化該帶區。最後一行代碼是調用CommandBands_AddAdornments函數將關閉按鈕加到控件中。
// Add menu to first band.
hwndBand = CommandBands_GetCommandBar (hwndCB, 0);
CommandBar_InsertMenubar (hwndBand, hInst, ID_MENU, 0);
  
// Add standard buttons to second band.
hwndBand = CommandBands_GetCommandBar (hwndCB, 1);
CommandBar_AddBitmap (hwndBand, HINST_COMMCTRL, IDB_STD_SMALL_COLOR,  15, 0, 0);
CommandBar_AddButtons (hwndBand, dim(tbCBStdBtns), tbCBStdBtns);
  
// Add exit button to command band.
CommandBands_AddAdornments (hwndCB, hInst, 0, NULL);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章