2014-10-05 87 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);