Man kan lave en funktion:
void OnSize(HWND aHwnd)
{
RECT R;
GetClientRect(aHwnd, &R);
MoveWindow(GetDlgItem(aHwnd, IDC_BUTTON2), 200, R.bottom - 40, 50, 20, TRUE);
if(MciWnd)
{
RECT MovieRect;
GetWindowRect(MciWnd, &MovieRect);
int Width = MovieRect.right - MovieRect.left;
int Height = MovieRect.bottom - MovieRect.top;
int MaxMovieHeight = R.bottom - R.top - 100;
double Scale = 1.0*Height/MaxMovieHeight;
Width /= Scale;
Height = MaxMovieHeight;
MoveWindow(MciWnd, 5, 30, Width, Height, TRUE);
}
}
Denne funktion vil afpasse størrelsen på filmen efter hvad der er plads til i højden. Den flytter play knappen ned under filmen, du skal også flytte de andre kontroller der er under filmen og du skal tage højde for bredden af filmen.
Du kalder den ved WM_SIZE:
case WM_SIZE:
OnSize(hwndDlg);
break;
Og når man starter afspilling:
if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_BUTTON2)
{
if(State == StoppedState)
{
OnSize(hwndDlg);
MCIWndPlay(MciWnd);
For at man kan ændre størrelsen på hovedvinduet skal du tilføje WS_THICKFRAME til style når du opretter vinduet.
(Og godnat.)