Шаг 78 - Динамическая смена фона

Добавляем еще один рисунок в ресурсы:

78_1.gif (8920 b)

На диалоговое окно кнопку и код к ней:

void CMyDIalog::OnButton1() 
{
	m_St.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,
		MAKEINTRESOURCE(IDB_BITMAP2)) );
	CRect tempRect;
	GetClientRect(tempRect);
	m_St.SetWindowPos(0,tempRect.top,tempRect.left,
		tempRect.right,tempRect.bottom,0);
	Invalidate();
}

Нам помимо смены картинки пришлось еще раз изменить размер, мы это делали в OnInitDialog(), но ведь все это можно вынести в отдельную функцию типа AdaptiveImage(). Запускаем:

78_2.gif (6428 b)

Нажимаем, на кнопку.

78_3.gif (17339 b)

Ну, а как менять цвет с OnPaint() понятно, подставить другой идентификатор картинки. Иы идентификатор меняем на переменную:

CBitmap cb;
cb.LoadBitmap(IDB_BITMAP1);	// Нужно подставлять переменную в которой идентификатор рисунка
CBrush tempBrush;

А дальше присваиваем этой переменной нужный идентификатор картинки и вызываем Invalidate().


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 07.07.2002