Comment voir si une MFC case à cocher est sélectionnée
J'ai vérifié de nombreux endroits pour la réponse, et ils recommandent la façon dont je l'ai fait, mais il ne semble pas fonctionner pour moi, de sorte que toute aide serait grandement appréciée.
J'ai une case à cocher et je voudrais activer une zone d'édition quand il est de vérifier et de le désactiver lorsque cette option est décochée.
Le code suivant est ce que j'ai créé:
void CMFCApplication1Dlg::OnBnClickedCheck1()
{
UINT nCheck = CheckBox.GetState();
if (nCheck == BST_CHECKED)
{
EditBox.EnableWindow(TRUE);
}
else if (nCheck == BST_UNCHECKED)
{
EditBox.EnableWindow(FALSE);
}
else
{
EditBox.EnableWindow(TRUE);
}
nCheck est de 520 quand je le lance il en debug, donc va directement à l'autre option.
Merci beaucoup
Vous devez vous connecter pour publier un commentaire.
CButton de GetState obtient l'état actuel de la boîte de dialogue de l'objet. Ce que vous voulez utiliser est CButton de membres getcheck.
Alternativement, vous pouvez, comme indiqué sur le site MSDN, faire un bit à bit du masque sur la valeur de retour pour obtenir le courant Vérifiez l'état mais les membres getcheck est juste là, de sorte que vous pourriez aussi bien l'utiliser.
Si vous lisez le page de manuel sur
GetState
vous verrez qu'il renvoie d'un masque de bits.Cela signifie que vous ne pouvez pas l'utiliser directement dans les comparaisons, vous devez vérifier cela comme un masque:
Cependant,
membres getcheck
pourrait être plus approprié dans votre cas.De Forum MSDN:
Pour lire l'état d'une case à cocher nommée IDC_CHECK1 dans une variable:
utiliser le code suivant: