Member 14594285 Ответов: 1

Контролируйте, установлен ли флажок


Я написал::

void CMFCApplication7Dlg::OnBnClickedCheck2()
{
	if ((check1.IsDlgButtonChecked==true) || (check3.IsDlgButtonChecked==true))
		text_check.SetWindowText(_T("check_multipli"));// TODO: Add your control notification handler code here
	else
		text_check.SetWindowText(_T("check2"));
}


Что я уже пробовал:

text_check должен написать "check:multipli", если установлен другой флажок, но он не работает..Я не понимаю, он пишет только чек 2

1 Ответов

Рейтинг:
4

OriginalGriff

Посмотрите на определение понятия Функция IsDlgButtonChecked (winuser.h) | Microsoft Docs[^] - он не возвращает логическое значение, он возвращает значение tristate:

Цитата:
BST_CHECKED          The button is checked.
BST_INDETERMINATE    The button is in an indeterminate state (applies only if the button
                     has the BS_3STATE or BS_AUTO3STATE style).
BST_UNCHECKED        The button is not checked.


Member 14594285

я написал::
если ((check1.IsDlgButtonChecked==BST_CHECKED) || (check3.IsDlgButtonChecked==BST_CHECKED))
text_check.SetWindowText(_T("check_multipli"));// TODO: добавьте сюда код обработчика уведомлений управления
еще
text_check.SetWindowText(_T("check2"));
}

но это одно и то же

Member 14594285

Я решил, я использовал:
CButton *m_ctlCheck = (CButton*)GetDlgItem(IDC_CHECK1);

но я не понимаю, что делает GetDlgItem

Rick York

GetDlgItem возвращает дескриптор элемента управления в диалоговом окне.