在MFC对话框中启用按钮
我有两个按钮:在MFC对话框中启用按钮,mfc,Mfc,我有两个按钮: 单选按钮:“十六进制” 按钮:“A” 我想在用户选中“十六进制”按钮时启用“A”(创建“A”时,“A”的状态为“禁用”),我如何才能做到这一点?谢谢大家 您需要使用函数 buttonA.EnableWindow( TRUE ); 如果没有CButton对象,可以通过调用GetDlgItem及其ID来访问该按钮: GetDlgItem( IDC_BUTTON_A )->EnableWindow( TRUE ); 您应该使用ON\u UPDATE\u COMMAND\u U
buttonA.EnableWindow( TRUE );
如果没有CButton
对象,可以通过调用GetDlgItem
及其ID来访问该按钮:
GetDlgItem( IDC_BUTTON_A )->EnableWindow( TRUE );
您应该使用
ON\u UPDATE\u COMMAND\u UI
机制来启用/禁用对话框中的“A”或任何其他按钮。默认情况下,它不适用于基于对话框的应用程序,但您可以通过以下操作轻松启用它们
更新函数中的代码如下所示:
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...
}
}
严格地说,它是
buttonA.EnableWindow(TRUE)
或者只是buttonA.EnableWindow()
@IInspectable:是的,虽然“TRUE”也可以,但有一个警告:)但我没有任何处理buttonA的CButton对象。你能告诉我处理它的功能吗?非常感谢。您必须获取按钮的窗口句柄并向其发送WM_ENABLE消息,或者使用类向导创建一个包含您希望能够控制的按钮的CButton对象。@PhùngKhánhiên如果您没有CButton,则可以使用GetDlgItem(IDC_button)->EnableWindow(TRUE);
NameOfYourButton.EnableWindow( TRUE );