FAQ:WinAPI VCPP:запретить кнопку

Материал из Весельчак У

Перейти к: навигация, поиск

Как запретить пользователю нажать на кнопку?

Нужно применить метод класса CWnd::EnableWindow(...) для кнопки. Значение 0 параметра делает кнопку неактивной, 1 - делает активной (кстати, не только для кнопки можно, а для любого класса, производного от класса CWnd).

Пусть имеется некий диалог, на нём лежит кнопка c ID == IDC_1. В любом месте кода диалога (кроме конструктора и деструктора, хотя, если проверить наличие валидного хендла диалога, как в примере, то ничего страшного не будет и там) выполняем код:

// делаем кнопку неактивной
if (m_hWnd)
{
CWnd* pw = 0;
pw = GetDlgItem(IDC_1);
if (pw)
{
pw->EnableWindow(0);
}
}