1. 首先在cmainframe::oncreate 函式下新增如下**,讓工具欄有下拉能力和向下的箭頭按鈕;
// 讓工具欄具有處理下拉箭頭的能力
dword dwexstyle = tbstyle_ex_drawddarrows;
m_wnd*******.get*******ctrl().sendmessage(tb_setextendedstyle, 0, (lparam)dwexstyle);
// 選定的地方新增下拉箭頭按鈕,其中id_soucang為對應的工具欄按鈕id
dword dwstyle = m_wnd*******.getbuttonstyle(m_wnd*******.commandtoindex(id_soucang));
dwstyle |= tbstyle_dropdown;
m_wnd*******.setbuttonstyle(m_wnd*******.commandtoindex(id_soucang),dwstyle);
注:需要加下拉列表的按鈕必須一直保持可用狀態,這個可以將按鈕關聯到某個選單中,也可以給按鈕新增update_commond_ui函式,並新增一下**:
void cmainframe::onupdatesoucang(ccmdui* pcmdui)
2. 在mainframe.cpp中新增:
on_notify(tbn_dropdown,afx_idw_*******, on*******dropdown)
在mainframe.h中分別新增:
afx_msg voidon*******dropdown(nm******** pnmh, lresult* plres);
其函式體**如下:
void on*******dropdown(nm******** pnmh, lresult* plres)
// load and display popup menu
cmenu menu;
menu.loadmenu(nid);
cmenu* ppopup = menu.getsubmenu(3);
assert(ppopup);
crect rc;
pwnd->sendmessage(tb_getrect, pnmtb->iitem,(lparam)&rc);
pwnd->clienttoscreen(&rc);
ppopup->trackpopupmenu(tpm_leftalign | tpm_leftbutton | tpm_vertical, rc.left, rc.bottom, this, &rc);
}
MFC 固定按鈕工具欄
通過mfc嚮導建立的應用程式,預設情況下工具欄是可以改變位置的,也就是說可以在父窗體上移動,但本例項建立了不能夠改變按鈕位置的工具欄。效果如下圖所示。系統環境 windows 10 開發環境 visual studio 2019 mfc嚮導建立的工具欄是使用c 類的createex方法實現的,該方法...
MFC 工具欄按鈕追加顯示文字
工具欄中的按鈕並不一定是都顯示按鈕文字的,使用者可以根據當前的操作隨時變化,這樣可以提高程式的應用性。本例項根據是在工具欄按鈕追加文字的顯示。效果如下圖所示 系統環境 windows 10 開發環境 visual studio 2019 使用方法setbuttontext就可以設定按鈕上的文字。c ...
MFC工具欄程式設計
竅門 1 要在工具欄增加乙個分割欄,只要拖動某乙個按鈕稍稍往右移動一點便可以了。2 要刪除乙個工具欄按鈕,只要點住它,把它拖出工具欄即可。1 在窗體的右邊新建乙個工具欄。首先,在resourceview中的 右鍵選擇insert 新建乙個工具欄idr 1。畫上幾個按鈕。然後再mainframe中新增...