void CCheckTestDlg::OnButton1()
{
static BOOL bIsPressed = FALSE;
CButton* pBtn = (CButton*)GetDlgItem(IDC_BUTTON1);
ASSERT (pBtn != NULL);
AfxMessageBox("OK");
pBtn->EnableWindow(FALSE);
pBtn->SetState(bIsPressed ^= TRUE);
pBtn->EnableWindow(TRUE);
}
Залипание кнопки
З.Ы. В файле приведен наглядный пример этой проблемы.
Для того чтобы обработчик нажатия кнопки не вызывался повторно при вызове SetState() нужно "отключить" эту кнопку функцией EnableWindow(FALSE) перед установкой состояния и включить после.
Да. Так работает. Спасибо.