⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 player.cpp

📁 AVI这个软件是用VC编写的
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                                
                                case IDM_ABOUT:
#if defined(_MSC_VER) && _MSC_VER >= 1200
										//VC++ 6
                                        DialogBox(GetWindowInstance(hWnd),
                                                  MAKEINTRESOURCE(IDD_ABOUT),
                                                  hWnd,
												  AboutDlgProc);
#else
										//VC++ 5
                                        DialogBox(GetWindowInstance(hWnd),
                                                  MAKEINTRESOURCE(IDD_ABOUT),
                                                  hWnd,
                                                  (int (__stdcall *)(void)) AboutDlgProc);
#endif
                                        break;

                        }
                        return 0;

                case WM_PAINT:
                        BeginPaint(hWnd, &ps);
                        EndPaint(hWnd, &ps);
                        return 0;

                case WM_SIZE:
                        if (!IsIconic(hWnd) && hWndMCI && bIsOpenMovie)
                                MoveWindow(hWndMCI,0,0,LOWORD(lParam),HIWORD(lParam),TRUE);
                        break;

                case WM_DESTROY:
                        if (bIsOpenMovie)
                                MCIWndClose(hWndMCI);  // close an open movie
                        MCIWndDestroy(hWndMCI);    // now destroy the MCIWnd window
                        PostQuitMessage(0);
                        return 0;

                case MCIWNDM_NOTIFYSIZE:
			if (!IsIconic(hWnd)) {
                            if (bIsOpenMovie){
                                /* adjust to size of the movie window */
                                GetWindowRect(hWndMCI, &rc);
                                AdjustWindowRect(&rc, GetWindowLong(hWnd, GWL_STYLE), TRUE);
                                SetWindowPos(hWnd, NULL, 0, 0, rc.right - rc.left,
                                        rc.bottom - rc.top,
                                        SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOMOVE);
                            } else {
                                /* movie closed, adjust to the default size */
                                int iWinHeight;

                                iWinHeight = GetSystemMetrics(SM_CYCAPTION) +
                                                GetSystemMetrics(SM_CYMENU) +
                                                (GetSystemMetrics(SM_CYFRAME) * 2);
                                SetWindowPos(hWnd, NULL, 0, 0, 180, iWinHeight,
                                        SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOMOVE);
			    }
                        }
                        break;

                case WM_ACTIVATE:
                case WM_QUERYNEWPALETTE:
                case WM_PALETTECHANGED:
                        //
                        // Forward palette-related messages through to the MCIWnd,
                        // so it can do the right thing.
                        //
                        if (hWndMCI)
                                return SendMessage(hWndMCI, message, wParam, lParam);
                        break;
        } /* switch */
        return DefWindowProc(hWnd, message, wParam, lParam);
}

void UpdateMenubar(HWND hWnd)
{
        WORD w,wp;

        if (bIsOpenMovie){
                w = MF_ENABLED|MF_BYPOSITION;
				wp = MF_ENABLED;		
        } else {
                w = MF_GRAYED|MF_BYPOSITION;
				wp = MF_GRAYED;		
        }

		
        EnableMenuItem(hMenuBar, 1, w); /* change the Movie menu (#1) */
		EnableMenuItem(hMenuBar, ID_PLAY, wp);
        DrawMenuBar(hWnd);      /* re-draw the menu bar */
}


void UpdateTitle(HWND hWnd, LPSTR lpstrMovie)
{
        char achNewTitle[BUFFER_LENGTH];        // space for the title

        if (lpstrMovie != NULL)
                wsprintf((LPSTR)achNewTitle,"%s - %s", (LPSTR)szAppName,lpstrMovie);
        else
                lstrcpy((LPSTR)achNewTitle, (LPSTR)szAppName);
        SetWindowText(hWnd, (LPSTR)achNewTitle);
}


// OpenMCIMovieFile - open an AVI movie. 
void OpenMCIMovieFile(HWND hWnd)
{

		OPENFILENAME ofn;

        static char szFile [BUFFER_LENGTH];
        static char szFileTitle [BUFFER_LENGTH];
		static char szFilter [BUFFER_LENGTH];

		char szLabelBuffer [BUFFER_LENGTH];
		::LoadString(NULL, ID_FILETYPE_VIDEO4WINDOWS, &szLabelBuffer[0], sizeof(szLabelBuffer)/sizeof(szLabelBuffer[0]));
		wsprintf(szFilter, szFilterVideo4WindowsFormat, szLabelBuffer);

        memset(&ofn, 0, sizeof(ofn));
        ofn.lStructSize = sizeof(ofn);
        ofn.hwndOwner = hWnd;
        ofn.lpstrFilter = szFilter;
        ofn.lpstrFile = szFile;
        ofn.nMaxFile = sizeof(szFile);
        ofn.lpstrFileTitle = szFileTitle;
        ofn.nMaxFileTitle = sizeof(szFileTitle);
        ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

        
        if (GetOpenFileName(&ofn)){        
            
                if (bIsOpenMovie)
                        MCIWndClose(hWndMCI);

                
            
                bIsOpenMovie = TRUE;              // assume the best
				if (MCIWndOpen(hWndMCI, ofn.lpstrFile, 0) == 0){
                        ShowWindow(hWndMCI, SW_SHOW);
                } else {
            
						char szBuffer[BUFFER_LENGTH];
						::LoadString(NULL, ID_ERROR_OPEN_MOVIE, szBuffer, sizeof(szBuffer));
                        MessageBox(hWnd, szBuffer, NULL,
                              MB_ICONEXCLAMATION|MB_OK);
                        bIsOpenMovie = FALSE;
                }
        }


        UpdateMenubar(hWnd);
        if (bIsOpenMovie)
                UpdateTitle(hWnd, (LPSTR)ofn.lpstrFileTitle);
        else
                UpdateTitle(hWnd, NULL);

        // update  
        InvalidateRect(hWnd, NULL, FALSE);
        UpdateWindow(hWnd);
		
}



void OpenMCIMovieFileInit(HWND hWnd)
{

        static char szFile [BUFFER_LENGTH];
        static char szFileTitle [BUFFER_LENGTH];

        if (bIsOpenMovie)
                MCIWndClose(hWndMCI);


		//MCIWndSetActiveTimer(hWndMCI, 20);
        
 
        bIsOpenMovie = TRUE;              
        if (MCIWndOpen(hWndMCI, playfiledir, 0) == 0){
		
                ShowWindow(hWndMCI, SW_SHOW);
        } else {
        
				char szBuffer[BUFFER_LENGTH];
				::LoadString(NULL, ID_ERROR_OPEN_MOVIE, szBuffer, sizeof(szBuffer));
                MessageBox(hWnd, szBuffer, NULL,
                      MB_ICONEXCLAMATION|MB_OK);
                bIsOpenMovie = FALSE;
        }

    
        
        UpdateMenubar(hWnd);
        if (bIsOpenMovie){
				char szBuffer[BUFFER_LENGTH];
				::LoadString(NULL, ID_TITLE_PLAYING_AVI, szBuffer, sizeof(szBuffer));
                UpdateTitle(hWnd, szBuffer);
		} else
                UpdateTitle(hWnd, NULL);

        
        InvalidateRect(hWnd, NULL, FALSE);
        UpdateWindow(hWnd);


}



/* AboutDlgProc()
 *
 * Dialog Procedure for the "about" dialog box.
 *
 */

BOOL CALLBACK AboutDlgProc(
        HWND    hwnd,
        UINT    msg,
        WPARAM  wParam,
        LPARAM  lParam)
{
        switch (msg) {
        case WM_COMMAND:
                EndDialog(hwnd, TRUE);
                return TRUE;
        case WM_INITDIALOG:
                return TRUE;
        }
        return FALSE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -