MFC: CMFCToolBar SetButtonStyle не работает со стилем TBBS_PRESSED?

0

byIs есть ошибка в контроле? или я делаю что-то неправильно?

В.h
CMFCToolBar m_wndToolBar;
в карте сообщений
ON_COMMAND(ID_MYID, &CMainFrame::OnToolBar)

void CMainFrame::OnToolBar()
{
int nIndex = m_wndToolBar.CommandToIndex(ID_MYID);
UINT nState = m_wndToolBar.GetButtonStyle(nIndex);
if(nState & TBBS_PRESSED)
nState &= ~TBBS_PRESSED;
else
nState |= TBBS_PRESSED;
m_wndToolBar.SetButtonStyle(nIndex,nState);
m_wndToolBar.InvalidateButton(nIndex);
}

Нажав на кнопку, мне нужно установить кнопку нажатой, а когда пользователь снова нажал, кнопка не будет нажата.

Ничего не происходит, нажимая на кнопку :(

Теги:
mfc
toolbar

2 ответа

0
Лучший ответ

Просто создайте обработчик ON_UPDATE_COMMAND для определенного элемента. Используйте pCmdUI-> SetCheck для сигнализации состояния "вниз" или "вверх".

MFC обновляет панели инструментов и меню никогда напрямую. Они просят Framework обновить состояние кнопок и пунктов меню.

0

Ваше описание указывает, что вы хотите, чтобы кнопка имела поведение "флажок". Если это так, убедитесь, что вы указали TBBS_CHECKBOX для стиля кнопки. Вам не нужно вручную обрабатывать отображение состояния флажка при каждом нажатии кнопки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню