testmci.c
上传用户:s6549606
上传日期:2015-11-11
资源大小:12002k
文件大小:2k
源码类别:

图形图像处理

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <vfw.h>
  3. void SetClientRect(HWND hwnd, HWND hwndMCI)
  4. {
  5.     RECT rect;
  6.     GetWindowRect(hwndMCI, &rect);
  7.     AdjustWindowRectEx(&rect, GetWindowLong(hwnd, GWL_STYLE),
  8.                        FALSE, GetWindowLong(hwnd, GWL_EXSTYLE));
  9.     MoveWindow(hwnd, rect.left, rect.top, rect.right - rect.left,
  10.                rect.bottom - rect.top, TRUE);
  11. }
  12. LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg,
  13.                          WPARAM wParam, LPARAM lParam)
  14. {
  15.     switch(uMsg)
  16.     {
  17.         case MCIWNDM_NOTIFYPOS:
  18.         case MCIWNDM_NOTIFYSIZE:
  19.             SetClientRect(hwnd, (HWND)wParam);
  20.             break;
  21.         case WM_DESTROY:
  22.             PostQuitMessage(0);
  23.             break;
  24.         default:
  25.             return DefWindowProc(hwnd, uMsg, wParam, lParam);
  26.     }
  27.     return 0;
  28. }
  29. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  30.                                      LPSTR lpCmdLine, int nCmdShow)
  31. {
  32.     MSG msg;
  33.     HWND hwnd;
  34.     WNDCLASS wndClass;
  35.     if (hPrevInstance == NULL)
  36.     {
  37.         memset(&wndClass, 0, sizeof(wndClass));
  38.         wndClass.style = CS_HREDRAW | CS_VREDRAW;
  39.         wndClass.lpfnWndProc = WndProc;
  40.         wndClass.hInstance = hInstance;
  41.         wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
  42.         wndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  43.         wndClass.lpszClassName = "HELLO";
  44.         if (!RegisterClass(&wndClass)) return FALSE;
  45.     }
  46.     hwnd = CreateWindow("HELLO", "HELLO",
  47.                         WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU,
  48.                         CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
  49.                         NULL, NULL, hInstance, NULL);
  50.     SetClientRect(hwnd, MCIWndCreate(hwnd, hInstance, WS_VISIBLE |
  51.                                     WS_CHILD | MCIWNDF_SHOWALL |
  52.                                     MCIWNDF_NOTIFYSIZE |
  53.                                     MCIWNDF_NOTIFYPOS, "c:\test.avi"));
  54.     ShowWindow(hwnd, nCmdShow);
  55.     UpdateWindow(hwnd);
  56.     while (GetMessage(&msg, NULL, 0, 0))
  57.         DispatchMessage(&msg);
  58.     return msg.wParam;
  59. }