Stretching an Image and Window
The following example stretches the images of a video clip and changes the
aspect ratio of the displayed frames. The frames displayed in the MCIWnd window
are twice the height and three times the width of the original frame. The
MCIWndGetDest and
MCIWndPutDest macros retrieve and redefine the destination rectangle coordinates. The
GetWindowRect and
SetWindowPos functions manage changes to the MCIWnd window dimensions.
// extern RECT rCurrent, rDest;
case WM_COMMAND:
switch (wParam)
{
case IDM_CREATEMCIWND:
g_hwndMCIWnd = MCIWndCreate(hwnd,
g_hinst,
WS_CHILD | WS_VISIBLE,
"sample.avi");
break;
case IDM_RESIZEWINDOW: // destination RECT and playback area
GetWindowRect(g_hwndMCIWnd, &rWin); // window size
MCIWndGetDest(g_hwndMCIWnd, &rCurrent); // destination RECT
rDest.top = rCurrent.top; // new boundaries
rDest.right = rCurrent.right;
rDest.left = rCurrent.left +
((rCurrent.left - rCurrent.right) * 3);
rDest.bottom = rCurrent.top +
((rCurrent.bottom - rCurrent.top) * 2);
MCIWndPutDest(g_hwndMCIWnd, &rDest); // new RECT
SetWindowPos(g_hwndMCIWnd, // window to resize
NULL, // z-order: don't care
0, 0, // position: don't care
rDest.right - rDest.left, // width
(rWin.bottom - rWin.top + // height (window -
(rCurrent.bottom - rCurrent.top) + // original RECT +
(rDest.bottom - rDest.top)), // new RECT
SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE);
break;
}
break;
// Handle other messages here.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database