Шаг 170 - Используем список изображений

Список изображений мы подготовили. Это хорошо. Теперь давайте его испытаем. Идея такая. Кнопка может содержать не только надпись, но и изображение из иконы. Вот и давайте поместим на наш диалог кнопку. И при нажатии на неё будут меняться картинки. По очереди естественно. Для начала надо установить у кнопки стиль, что она с иконой будет. Вот так.

170_1.gif (4497 b)

Для кнопки надо создать класс в классе диалога. Лучше с помощью ClassWizard. Вот так.

class CTestImageDlg : public CDialog
{
...........
	enum { IDD = IDD_TESTIMAGE_DIALOG };
	CButton	m_Button;
...........
};

Теперь давайте заведем число, которое будет отвественено за то, какую картинку выводить.

class CTestImageDlg : public CDialog
{
// Construction
public:
	int intImage;
...........
};

И инициализируем его для начала в конструктолре класса диалога.

CTestImageDlg::CTestImageDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTestImageDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTestImageDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	intImage=-1;
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

Ну вот теперь можно создавать и код нажатия на кнопку. Он простой. Смотрите.

void CTestImageDlg::OnButton1() 
{
 if (intImage<3) intImage++;
 else intImage=0;
 m_Button.SetIcon(cl.ExtractIcon(intImage));  	
}

Идея здесь простая. У класса кнопки есть функция SetIcon, которая и устанавливает картинку. А у класса списка изображений есть функция ExtractIcon, которая эту икону извлекает. Вобщем получается, что написано - установить извлеченное. :-)

Запускайте проект. Щелкайте по кнопке у неё будет меняться икона. Чего и хотели.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 17.04.2000