①、mfc 中工具欄關聯的類:c*******ctrl、c*******
②、c*******ctrl、c******* 兩個類的區別:
c******* 和 cstatusbar 都是在 control bars 類中的封裝,而 cstatusbarctrl 和 c*******ctrl 都是在 controls 類中的封裝。
c*******ctrl 和 cstatusbarctrl 它們只是簡單地封裝了 api,而沒有增加附加的功能,
所以由它們所建立的工具欄和狀態列不會比 api 版本增加更多的功能。
它們也不能移動或被使用者停靠或者垂直對齊。它們僅能用於在控制條內更方便地設定並控制按鈕和窗格,
所以,為了得到一些所希望的功能就必須使用 c******* 和 cstatusbar 類來進行工具欄和狀態列的建立。
③、插入並編輯工具欄資源;
改變顏色,調整大小、距離產生分組
④、建立工具欄:
// h 檔案
c******* m_wnd*******;
// cpp 檔案的 oninitdialog() 函式中:
if(!m_wnd*******.createex(this, tbstyle_flat, ws_child|ws_visible|cbrs_align_top|cbrs_gripper|cbrs_tooltips, crect(4, 4, 0, 0))
|| !m_wnd*******.load*******(idr_*******1))
repositionbars(afx_idw_controlbar_first, afx_idw_controlbar_last, 0); //定位工具條
⑤、工具欄的美化:ctruecolor******* 類的使用
1> 將類檔案複製到工程目錄,並新增到工程中;
2> 將工具欄資源複製到工程的 res 目錄並新增到工程中;
3> 重新定義 c******* m_wnd*******; 為 ctruecolor******* m_wnd*******;
4> 載入工具欄位圖:m_wnd*******.loadtruecolor*******(116, idb_bitmap1);
⑥、為工具欄按鈕新增訊息響應函式:
1> 主對話方塊類的標頭檔案中進行工具欄按鈕的訊息響應函式的宣告:afx_msg void ontestfunc();
2> 在cpp檔案中進行訊息對映的新增:on_command(id_tb_one, &cmfctestdlg::ontestfunc)
vc6.0 的方式:on_command(id_tb_one, ontestfunc)
3> 響應函式的實現;
void cmfctestdlg::ontestfunc()
⑦、與選單的關聯;
⑧、按鈕右側顯示文字:
m_wnd*******.modifystyle(0, btns_showtext|tbstyle_ex_mixedbuttons|tbstyle_list);
m_wnd*******.setbuttontext(0, _t("one"));
sdk實現工具欄和狀態務欄:
------------------------------------- end -------------------------------------------
api 建立工具欄
tbbutton tbbuttons 0,0 0,0 define button count sizeof tbbuttons sizeof tbbuttons 0 hwnd winapi create hwnd hwndparent,hinstance hinst sendmessage hwnd...
RCP建立選單欄工具欄(下拉)
如圖 建立並註冊action override protected void makeactions iworkbenchwindow window 建立選單,選單項 override protected void fillmenubar imenumanager menubar override ...
工具欄程式設計
1 用api 建立工具欄,簡單例子 之前定義了乙個由3個16 16組成的點陣圖,準備建立乙個具有三個按鈕的工具欄 tbbutton tbbuttons create ex hwnd,ws child ws visible tbstyle flat,16,16,16,16,sizeof tbbutto...