2014-10-05 4 views
3

У меня есть две кнопки:
кнопку Radio: «Hex»
и кнопки: «А»
Я хочу, чтобы включить кнопку «A» пользователи в любое время «Hex» проверяется (состояние «А» «Отключен», когда он создан), как я могу это сделать? Благодарю всех. The Calculator MFC ApplicationВключить кнопку в MFC Dialog

ответ

3

Вам необходимо использовать функцию .

buttonA.EnableWindow(TRUE); 
+0

Строго говоря, это 'buttonA.EnableWindow (TRUE)' или просто 'buttonA.EnableWindow()'. – IInspectable

+0

@Инспективный: Да, справедливая точка, хотя «правда» будет работать так же хорошо, с предупреждением :) – Goz

+0

Но у меня не было объекта CButton, который обрабатывает buttonA. Можете ли вы показать мне функцию справиться с этим, пожалуйста? Большое спасибо. –

1

Вы должны использовать ON_UPDATE_COMMAND_UI механизм для включения/выключения «A» или любой другой кнопки в вашем диалоге. По умолчанию он недоступен для диалогового приложения, но вы можете легко включить их, следуя этому article.

код в функции обновления будет выглядеть примерно так:

void CCalculatorDlg::OnUpdateButtonA(CCmdUI* pCmdUI) 
{ 
     if(m_ctrlBtnHex.GetCheck() == BST_CHECKED) 
     { 
      pCmdUI->Enable(TRUE); 
     } 
     else 
     { 
      pCmdUI->Enable(FALSE); 
     } 
} 

В вашем случае, так как A, B, C, D, E, F по существу имеют те же состояния, так что вы можете вместо этого:

void CCalculatorDlg::OnUpdateButtonA(CCmdUI* pCmdUI) 
{ 
     if(m_ctrlBtnHex.GetCheck() == BST_CHECKED)) 
     { 
      m_ctrlBtnA.EnableWindow(TRUE); 
      m_ctrlBtnB.EnableWindow(TRUE); 
      m_ctrlBtnC.EnableWindow(TRUE); 
      // so on... 
     } 
     else 
     { 
      m_ctrlBtnA.EnableWindow(FALSE); 
      m_ctrlBtnB.EnableWindow(FALSE); 
      m_ctrlBtnC.EnableWindow(FALSE); 
      // so on... 
     } 
} 
Смежные вопросы