как использовать plgblt - PullRequest
2 голосов
/ 27 октября 2011

Мне нужно повернуть картинку нажатием стрелок.

         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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...