windows - Roter et billede, mens du trækker med c ++

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil rotere et billede i min ansøgning. Hvad jeg vil, er på tidspunktet for museklik, lav et gennemsigtigt vindue oven på mit valg, og drej det originale billede, mens du trækker, drej det gennemsigtige vindue og på tidspunktet for Drag End. (Ødelægge det gennemsigtige vindue)


Jeg har set sådan en adfærd i MS Outlook til billedrotation. Jeg vil præcis simulere det i mit program.


Enhver prøvekode ville blive meget værdsat.
Tak på forhånd..


Her er koden, jeg har skrevet hidtil ..
På tidspunktet for museklik kan jeg oprette et gennemsigtigt vindue ved hjælp af


#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);
}


Nu på tidspunktet for at trække,


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


Nu vil jeg rotere denne overlayWindow ifølge mine musepositioner ...


På Drag End har jeg det her ..


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

Bedste reference