2015-03-12 2 views

ответ

1

Вам необходимо использовать CMFCToolbar :: ReplaceButton.

Вы заменяете обычную кнопку либо одним из стандартных классов CMFCToolBarButton по умолчанию, либо с одним из ваших собственных производных классов.

На панели инструментов должна быть кнопка «заполнителя» (пустая кнопка) в позиции, которую вы хотите заменить.

, например, для замены кнопки на панель инструментов с списком:

CMFCToolBarComboBoxButton myCombo(IDC_BUTTON_TO_REPLACE, GetCmdMgr()->GetCmdImage(IDC_BUTTON_TO_REPLACE, FALSE), CBS_DROPDOWNLIST, 80); 
myCombo.m_strText.LoadString(IDS_MY_STRING); 
myToolbar.ReplaceButton(IDC_BUTTON_TO_REPLACE, myCombo); 

Есть несколько стандартной «кнопка» доступны (в частности): CMFCToolBarEditBoxButton заменить кнопки на панель инструментов с окном редактирования. CMFCToolBarDateTimeCtrlImpl для замены кнопки на панели инструментов с помощью выбора даты CMFCToolBarComboBoxButton, чтобы заменить кнопку панели инструментов с помощью поля со списком.

(есть еще пара для меню и одна для «перспективы»).

Удачи.

+0

Но можно ли это сделать с помощью CToolbar вместо CMFCToolbar? – goodking

+0

Я думаю, вы можете использовать CToolBar :: SetButtonStyle (это было время, и я помню, что это было сложно), но если бы я был вами, я бы начал использовать CMFCToolbar. – Max

+0

Хорошо, попробуй, спасибо! – goodking