Список изображений мы подготовили. Это хорошо. Теперь давайте его испытаем. Идея такая. Кнопка может содержать не только надпись, но и изображение из иконы. Вот и давайте поместим на наш диалог кнопку. И при нажатии на неё будут меняться картинки. По очереди естественно. Для начала надо установить у кнопки стиль, что она с иконой будет. Вот так.
Для кнопки надо создать класс в классе диалога. Лучше с помощью 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, которая эту икону извлекает. Вобщем получается, что написано - установить извлеченное. :-)
Запускайте проект. Щелкайте по кнопке у неё будет меняться икона. Чего и хотели.