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);
	}
}