2014-10-05 117 views
3

的按钮,我有两个按钮:
单选按钮:“十六进制”
和按钮:“A”
我想启用“A”随时随地用户“十六进制”按钮被选中(状态的“A”在创建时是“禁用的”),我该怎么做?谢谢大家。 The Calculator MFC Application启用MFC对话框

回答

3

您需要使用函数。

buttonA.EnableWindow(TRUE); 
+0

严格地说,它是'buttonA.EnableWindow(TRUE)'或'简单buttonA.EnableWindow()'。 – IInspectable 2014-10-05 20:59:21

+0

@IInspectable:是的公平点,虽然“真实”将同样工作,并带有警告:) – Goz 2014-10-05 21:42:44

+0

但我没有任何处理buttonA的CButton对象。你能告诉我处理它的功能吗?非常感谢你。 – 2014-10-06 02:27:36

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... 
     } 
} 
0
NameOfYourButton.EnableWindow(TRUE);