我想在我的应用程序中旋转一个图像,我想要的是在鼠标单击时,在我选择的顶部创建一个透明窗口,然后拖动旋转该透明窗口,并在拖动结束时,旋转原始图像(销毁透明窗口)
我在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);
...
...
...
...
现在,我想根据我的鼠标位置旋转这个overlayWindow ......
在Drag End,我有这个..
if(mOverlayWindowHWND) {
::DestroyWindow(mOverlayWindowHWND);
}