1
、用api
建立工具欄,簡單例子
之前定義了乙個由3個16*16組成的點陣圖,準備建立乙個具有三個按鈕的工具欄
tbbutton tbbuttons=, ,
};
create*******ex(hwnd,ws_child|ws_visible|tbstyle_flat,.....,16,16,16,16,sizeof(tbbutton));
這樣即可:
其中:tbbutton結構中的第一元素為:按鈕索引,接下來為:按鈕的id,按鈕的初始風格等
2、用mfc的c*******ctrl類建立
crect rt;
getclientrect(&rt);
rt.bottom = rt.top + 24;
m_ctltb.create(ws_child|ws_visiblet|bstyle_flat,rt,this,id_*******);
m_ctltb.addbitmap(3,idb_bitmap1);
m_ctltb.addbuttons(3,tbbuttons);
c*******ctrl只是api的簡單包裝,並沒增加功能
3、用mfc的c*******類建立
可參考的例子很多,msdn的例子:mfcie介紹了如何建立類似ie的具有文字標籤和下拉列表風格的按鈕
方法1:
構造c*******物件
c*******::create或c*******::createex建立工具欄
c*******::load*******載入位圖
方法2:
構造c*******物件
c*******::create或c*******::createex建立工具欄
c*******::loadbitmap載入位圖
c*******::setbuttons設定按鈕id
兩種方法區別在於是否利用*******資源
4、為什麼工具欄用256以上就會失真
工具欄內部應該以imagelist管理位圖,而預設是採用16色。為了使用
256以有更高色
必須以ilc_color8(256)或相應的值建立
imagelist。
然後tb_setimagelist訊息給工具欄設定新的
imagelist
,以同樣的方法還可以設定工具欄的熱點位圖。
建議參考msdn sample的
5、工具欄的風格:
在msdn中按《******* control and button styles》索引即可得到所有風格。有些風格對
版本有要求,更詳細請看msdn。
tbstyle_flat: 使工具欄上的按鈕表面平坦,按鈕邊界不會被繪出來,除非滑鼠指標在上面
tbstyle_list: 按鈕文字顯示在按鈕的左邊
tbstyle_tooltips:如果使用者將滑鼠指標停留在按鈕上較長時間就使按鈕產生ttn_needtext通知訊息。
程式設計師負責為這個工具提示提供文字
tbstyle_wrapable:使控制項將其按鈕排成多行以適應當前的控制項大小
tbstyle_altdrag:允許使用者按住alt來拖動按鈕的位置
tbstyle_customerase:使控制項處理wm_erasebkgnd 訊息時會產生nm_customdraw通知訊息
tbstyle_transparent:除按鈕以外工具欄是透明的,文字顯示在按鈕下面
擴充套件風格:
tbstyle_ex_drawddarrows :使工具欄能建立具有下拉列表的按鈕
還可以使用以cbrs開頭的控制條風格:
cbrs_top 控制條在框架視窗的頂部
cbrs_bottom
cbrs_noalign 當框架視窗改變大小時控制條不重置
cbrs_tooltips 控制條顯示tooptip資訊
cbrs_size_dynamic
cbrs_size_fixed
cbrs_floating
cbrs_flyby
cbrs_hide_inplace
還有以ccs開頭的通用控制項風格:
ccs_noresize: 被建立的控制條的大小由createwindow api呼叫指定。該風格忽略以下4種風格
ccs_top: 控制條沿其父視窗框架頂部/底部/左/右對齊並且其寬度設定為系統標準
ccs_bottom:
ccs_left:
ccs_right:
ccs_nodivider: 控制條自動沿其頂部繪製一條直線:通常用來將工具欄和選單分隔開
ccs_adjustable: 允許使用者動態配置工具欄
ccs_nomovey: 下面風格沒有明顯效果或是重複上面的風格
ccs_nomoveex:
ccs_noparentalign:
除此之處還有工具欄按鈕的風格和按鈕的狀態。
MFC工具欄程式設計
竅門 1 要在工具欄增加乙個分割欄,只要拖動某乙個按鈕稍稍往右移動一點便可以了。2 要刪除乙個工具欄按鈕,只要點住它,把它拖出工具欄即可。1 在窗體的右邊新建乙個工具欄。首先,在resourceview中的 右鍵選擇insert 新建乙個工具欄idr 1。畫上幾個按鈕。然後再mainframe中新增...
MFC工具欄程式設計
竅門 1 要在工具欄增加乙個分割欄,只要拖動某乙個按鈕稍稍往右移動一點便可以了。2 要刪除乙個工具欄按鈕,只要點住它,把它拖出工具欄即可。1 在窗體的右邊新建乙個工具欄。首先,在resourceview中的 右鍵選擇insert 新建乙個工具欄idr 1。畫上幾個按鈕。然後再mainframe中新增...
側邊工具欄
引用 日前,三星正式向galaxy note ii推送了包含側屏多工處理功能的韌體更新。和大多數智慧型手機底部滑出的多工處理不同,galaxy note ii包含的這種多工ui和許多web2.0 的表現形式極其相似,相比底部橫排或者全屏卡片式,側面直立顯示更為新穎。三星官方將這種多工處理的方式命名為...