工具欄的建立

2021-06-17 17:18:12 字數 1639 閱讀 7073

①、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...