MFC工具欄按鈕下拉

2021-06-11 02:42:21 字數 1462 閱讀 1627

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中新增...