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