... rect.left = 20;
rect.top = 0;
rect.bottom = 30;
rect.right = 50;...
Как под MFC нарисовать фигуру, так, чтобы она падала вниз по экрану
Люди, помогите... Надо нарисовать фигуру, которая будет падать вниз по экрану и реагировать на кнопки влево и вправо, т.е. соответственно перемещаться либо влево, либо вправо
Помочь чем?
int time; - счетчик
CRect rect; - прямоугольник
CBrush br; - кисть
HACCEL h;-акселлератор и функцию обработчик кнопки или пункта меню
afx_msg void OnBnClickedOk();
В конструкторе диалога задаешь начальные координаты прямоугольника
Код:
В ф-ии OnInitDialog cоздаешь кисть
Код:
...
br.CreateSolidBrush(RGB(255,0,0));
...
br.CreateSolidBrush(RGB(255,0,0));
...
Добавляешь классу диалога ф-ию OnTimer(UINT nIDEvent),в ней пишешь
Код:
{
time++;
CClientDC dc(this);
Invalidate();
UpdateWindow();
dc.FillRect(&rect,&br);
rect.top += 10;
rect.bottom += 10;
CDialog::OnTimer(nIDEvent);
}
time++;
CClientDC dc(this);
Invalidate();
UpdateWindow();
dc.FillRect(&rect,&br);
rect.top += 10;
rect.bottom += 10;
CDialog::OnTimer(nIDEvent);
}
A в ф-ии обработчике кнопки
Код:
CClientDC dc(this);
dc.FillRect(&rect,&br);
SetTimer(0,500,0);
dc.FillRect(&rect,&br);
SetTimer(0,500,0);
Создается прямоугольник и падает вниз,таймер установлен на 0.5 сек.Для того чтобы им можно было управлять клавишами создаешь
акселлератор,добавляешь его в ресурсах и назначаешь ему обработчики
при помощи Add Event Handler.В OnInitDialog напишешь
Код:
...h = ::LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ACCELERATOR4));...
h - акселлератор,надо добавить в класс диалога
HACCEL h;
Спасибо, большое. Очень помогло...