Поворот изображения при перетаскивании с помощью C ++ - PullRequest
0 голосов
/ 23 марта 2012

Я хочу повернуть изображение в моем приложении. То, что я хочу, это сделать во время щелчка мышью, создать прозрачное окно поверх моего выделения, затем при перетаскивании повернуть это прозрачное окно и во время окончания перетаскивания повернутьисходное изображение (уничтожение этого прозрачного окна)

Я видел такое поведение в MS Outlook для поворота изображения.Я хочу точно смоделировать это в моем приложении.

Любой пример кода будет высоко оценен.Заранее спасибо ..

Вот код, который я написал до сих пор .. Во время щелчка мышью я могу создать прозрачное окно, используя

#define POPWINDOWCLASSNAM TEXT("ImageCropper")

RECT     portBounds;

GetWindowRect(hWnd, &portBounds); // hWnd is Custom Control Window where image is there

mOverlayWindowHWND = CreateWindowEx(WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_LAYERED, POPWINDOWCLASSNAM, TEXT(""),WS_POPUP | WS_DISABLED |  WS_CLIPSIBLINGS,portBounds.left, portBounds.top, portBounds.right - portBounds.left, portBounds.bottom - portBounds.top,
        0, 0, hxtinst, 0 );

if(mOverlayWindowHWND)
{
    SetLayeredWindowAttributes(mOverlayWindowHWND, RGB(255,0,0), 50, LWA_COLORKEY | LWA_ALPHA);
    ShowWindow(mOverlayWindowHWND, SW_SHOW);
    UpdateWindow(mOverlayWindowHWND);
}

Теперь навремя перетаскивания,

HDC hDC = GetDC(mOverlayWindowHWND);
    ...
    ...
    ...
    ...

Теперь я хочу повернуть это оверлейное окно в соответствии с позициями моей мыши ...

В конце перетаскивания у меня есть это.

if(mOverlayWindowHWND) {
    ::DestroyWindow(mOverlayWindowHWND);
}
...