[翻譯]-Windows CE 程式設計 (3rd 版)–5.2 公用控制項(五)

來源:互聯網
上載者:User

                                                                               翻譯:tellmenow

命令帶(Command Bands)
命令帶控制項是一種rebar控制項,預設會在控制項的每個帶區中包含一個命令條。rebar控制項是一種控制項容器,使用者可以在應用程式的視窗上拖動它。命令帶只不過是在rebar中的命令條,所以在學習如何對命令帶控制項進行編程時,知道如何對命令條進行編程就成為最多學習的了。

命令帶控制項上每個單獨的帶區都有一個“小夾子”,用於將該帶區拖動到新的位置。命令帶可以最小化,此時只顯示“小夾子”和一個表徵圖;也可以最大化,此時可以覆蓋同一行上的其它帶區;也可以設定為“還原(Restore)”狀態,此時和同一行上的其它帶區共用螢幕空間。甚至可以將命令帶移動到一個新行,來建立一個多行命令帶。圖5-4中的視窗頂部,顯示了一個兩行命令帶控制項。
圖5-4略
命令帶的標準用途是將菜單、按鈕等命令條上的元素分隔成獨立的命令帶。這可以讓使用者按自己的喜好來重新安排這些元素。也可以將獨立的命令帶顯露或者疊在一起,好為菜單、按鈕等控制項提供更大的空間。

建立命令帶控制項
建立命令帶是很簡單的,當然,同建立命令條控制項比還是有點複雜。通過調用以下函數來建立命令帶控制項:
HWND CommandBands_Create (HINSTANCE hinst, HWND hwndParent, UINT wID, DWORD dwStyles, HIMAGELIST himl);
dwStyles參數接受許多標誌,用來定義命令帶控制項的外觀和操作行為。這些風格同rebar的很類似,畢竟命令帶控制項和rebar控制項關係密切。

RBS_AUTOSIZE 如果控制項尺寸或者位置發生變化,命令帶自動調整布局
RBS_BANDBORDERS 每個帶上繪製線條來分隔相鄰的帶
--------------------------------------------------------------------------------------------------------------------
用於命令帶控制項的圖象列表
前面我提到過圖象列表。命令條和工具條都在內部使用圖象列表,用於管理用在按鈕上的圖象。可以使用標準的圖象清單控制項來管理圖象列表。該控制項基本上就是一個協助控制項,用來協助應用程式管理一系列尺寸相同的圖象。Windows CE下的圖象清單控制項同Windows2000及Windows Me下的是一致的,除非是不支援游標的WindowsCE版本。對於命令帶控制項來說,只需要建立圖象列表,並加入代表最小化狀態時的單獨命令帶的圖象集即可。下面展示了一小段相關的代碼:
himl = ImageList_Create (16,16,ILC_COLOR,2,0);
hBmp = LoadBitmap (hInst, TEXT("CmdBarBmps"));
DeleteObject (hBmp);
函數ImageList_Create 頭兩個參數是要裝載的圖象的尺寸,第三個是圖象的格式(ILC_COLOR是預設的),第四個是圖象列表裡的初始圖象數量,最後一個是要添加的圖象個數。通過裝載一個包含兩個圖象的雙倍寬度的位元影像以及調用ImageList_Add,可以將兩個圖象加進來。位元影像被裝進圖象列表後,應該刪除位元圖。

RBS_FIXEDORDER  允許移動命令帶,但順序保持不變

RBS_SMARTLABELS 當最小化時,用表徵圖來代表命令帶。當命令帶還原或者最大化時,會顯示標籤文本RBS_VARHEIGHT 控制項中的每行會根據該行帶區的高度調整到最小尺寸高度。當沒有該標誌的時候,每行的高度按控制項中最高的帶來計算。
CCS_VERT  建立一個垂直命令帶控制項
RBS_VERTICALGRIPPER  為垂直命令條顯示一個用於移動的“小夾子”。該標誌會被忽略,除非設定了CCS_VERT標誌
這些風格當中,RBS_SMARTLABELS和RBS_VARHEIGHT是使用最多的兩個標誌。

RBS_SMARTLABELS標誌使使用者可以為命令帶控制項選擇有吸引力的外觀而不需要應用程式做什麼工作。如果在帶區使用控制項而不是在預設的命令條上,那麼RBS_VARHEIGHT標誌就是很重要的。

CCS_VERT風格標誌會建立一個垂直的命令帶控制項,但因為WindowsCE不支援垂直菜單,所以帶有菜單的命令帶在垂直帶中是不會正確顯示的。不過您可以當控制項是垂直方向的時候,隱藏一個特殊的命令帶。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.