Мне нужно повернуть картинку нажатием стрелок.
rotate(dots, 90, 150, 120, size.cx, size.cy);
PlgBlt(dc, dots, my_dc, 0, 0, size.cx, size.cy, my_mask, 0, 0);
Есть функция - вращаться.
Но я не знаю, где поставить эту часть. Когда я кладу это в WM_TIMER - ничего не происходит. В WM_PAINT - тоже. В чем дело?
Где поставить этот код и где это назвать?
Вот WM_PAINT и WM_TIMER
case WM_PAINT:
dc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
BitBlt(mdc, 0, 0, info.bmWidth, info.bmHeight, bdc, 0, 0, SRCCOPY);
MaskBlt(mdc, my_pos.x, my_pos.y, my_size.cx, my_size.cy, my_dc, 0, 0, my_mask, 0, 0, MAKEROP4(SRCCOPY, SRCPAINT));
BitBlt(dc, 0, 0, rect.right, rect.bottom, mdc, 0, 0, SRCCOPY);
EndPaint(hwnd, &ps);
break;
case WM_TIMER:
if(LOWORD(wParam) == 777u) {
if(GetAsyncKeyState(VK_LEFT))
{
if (GreatFuncLeftRight(my_pos.x,my_pos.y))
{
my_pos.x -= 2;
}
else my_pos.x-=0;
}
if(GetAsyncKeyState(VK_RIGHT))
{
if (GreatFuncLeftRightReverse(my_pos.x,my_pos.y))
{
my_pos.x += 2;
}
else my_pos.x+=0;
}
if(GetAsyncKeyState(VK_UP))
{
if (GreatFuncUpDown(my_pos.x,my_pos.y))
{
my_pos.y -= 2;
}
else my_pos.y-=0;// вверх
}
if(GetAsyncKeyState(VK_DOWN))
{
if (GreatFuncUpDownReverse(my_pos.x,my_pos.y))
{
my_pos.y += 2;
}
else my_pos.y+=0;
}
InvalidateRect(hwnd, NULL, FALSE);
}
break;