2010-11-16 19 views
0

J'ai une boîte de dialogue avec une case à cocher et un bouton. Je veux activer/désactiver le bouton en fonction de l'état de la case à cocher. J'ai essayé parvenir en utilisant ON_UPDATE_COMMAND_UI:Etat du bouton contrôlé par une case à cocher

... 
DDX_Check(pDX, IDC_CHECK1, bFlag); 
... 
ON_UPDATE_COMMAND_UI(IDC_BUTTON1, OnUpdateButton1) 
... 
void ColorDialog::OnUpdateButton1(CCmdUI* pCmdUI) 
{ 
    pCmdUI->Enable(bFlag); 
} 

Mais rien ne se passe. Cocher/décocher la case ne fait rien au bouton.
Qu'est-ce que je fais mal ici?

Répondre

1

ON_UPDATE_COMMAND_UI est pertinent uniquement pour les éléments de menu et les boutons de la barre d'outils. Vous devez ajouter ON_BN_CLICKED à votre carte de message.

+0

qui est 'ON_BN_CLICKED (IDC_CHECK1, ...)', pas 'ON_BN_CLICKED (IDC_BUTTON1, ...)' – djeidot

0

Ajouter un eventhandler pour case-clic, où vous appelez

UpdateData(TRUE); 
pButton->EnableWindow(bFlag); 

Cela devrait faire l'affaire.