我有两个按钮:
- 单选按钮:“十六进制”
- 按钮:“A”
我想在用户选择“十六进制”按钮时随时启用“A”按钮(当创建“A”按钮时,其状态为“禁用”),我该怎么做?谢谢大家。
我有两个按钮:
我想在用户选择“十六进制”按钮时随时启用“A”按钮(当创建“A”按钮时,其状态为“禁用”),我该怎么做?谢谢大家。
你需要使用CButton
的EnableWindow
函数。
buttonA.EnableWindow( TRUE );
如果你没有 CButton
对象,可以通过调用其ID来使用 GetDlgItem
访问该按钮:GetDlgItem( IDC_BUTTON_A )->EnableWindow( TRUE );
您应该使用 ON_UPDATE_COMMAND_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...
}
}
NameOfYourButton.EnableWindow( TRUE );
buttonA.EnableWindow(TRUE)
或者简单地写作buttonA.EnableWindow()
。 - IInspectableWM_ENABLE
消息。这不是应用程序应该生成的消息之一。 - IInspectable