
- MFC 教程
- MFC - 首頁
- MFC - 概述
- MFC - 環境設定
- MFC - VC++ 專案
- MFC - 開始入門
- MFC - Windows 基礎
- MFC - 對話方塊
- MFC - Windows 資源
- MFC - 屬性表
- MFC - Windows 佈局
- MFC - 控制元件管理
- MFC - Windows 控制元件
- MFC - 訊息與事件
- MFC - ActiveX 控制元件
- MFC - 檔案系統
- MFC - 標準 I/O
- MFC - 文件/檢視
- MFC - 字串
- MFC - CArray
- MFC - 連結串列
- MFC - 資料庫類
- MFC - 序列化
- MFC - 多執行緒
- MFC - 網際網路程式設計
- MFC - GDI
- MFC - 庫
- MFC 有用資源
- MFC - 快速指南
- MFC - 有用資源
- MFC - 討論
MFC - 動畫控制元件
動畫控制元件是一個視窗,用於顯示 AVI 格式的音訊剪輯。AVI 剪輯是一系列點陣圖幀,就像電影一樣。動畫控制元件只能播放簡單的 AVI 剪輯,並且不支援聲音。它由CAnimateCtrl類表示。
以下是 CAnimateCtrl 類中的方法列表:
序號 | 方法和描述 |
---|---|
1 | Close 關閉 AVI 剪輯。 |
2 | Create 建立一個動畫控制元件並將其附加到 CAnimateCtrl 物件。 |
3 | CreateEx 使用指定的 Windows 擴充套件樣式建立一個動畫控制元件並將其附加到 CAnimateCtrl 物件。 |
4 | IsPlaying 指示是否正在播放音訊影片交錯 (AVI) 剪輯。 |
5 | Open 從檔案或資源開啟 AVI 剪輯並顯示第一幀。 |
6 | Play 播放 AVI 剪輯(無聲音)。 |
7 | Seek 顯示 AVI 剪輯中選定的單個幀。 |
8 | Stop 停止播放 AVI 剪輯。 |
以下是動畫控制元件的訊息對映列表:
訊息 | 對映條目 | 描述 |
---|---|---|
ACN_START | ON_ACN_START (<id>, <memberFxn>) | 當動畫開始時,框架會呼叫此成員函式。 |
ACN_STOP | ON_ACN_STOP (<id>, <memberFxn>) | 當動畫停止時,框架會呼叫此成員函式。 |
讓我們來看一個簡單的動畫控制元件示例。
步驟 1 - 建立一個新的基於 MFC 對話方塊的專案。

步驟 2 - 專案建立後,刪除 TODO 行,單擊工具箱中的“動畫控制元件”,然後繪製一個矩形,如下面的快照所示。

步驟 3 - 要為動畫控制元件新增控制元件變數,請右鍵單擊並選擇“新增變數”。

步驟 4 - 輸入變數名和變數型別,對於動畫,變數型別為 CAnimateCtrl。

步驟 5 - 使用“屬性”視窗,將“邊框”值設定為 False,將“自動播放”、“居中”和“透明”值設定為 True。
步驟 6 - 我們在res資料夾中有一個*.avi檔案,這是專案中使用的任何資源的預設資料夾。
步驟 7 - 要啟動動畫,我們需要呼叫CAnimateCtrl類的 Open 方法。在 CMFCAnimationDemoDlg::OnInitDialog() 中新增以下程式碼行。
m_animationCtrl.Open(L"res\\copyfile.avi");
步驟 8 - 以下是 CMFCAnimationDemoDlg::OnInitDialog() 的完整實現。
BOOL CMFCAnimationDemoDlg::OnInitDialog(){ CDialogEx::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL){ BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()){ pSysMenu -> AppendMenu(MF_SEPARATOR); pSysMenu -> AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here m_animationCtrl.Open(L"res\\copyfile.avi"); return TRUE; // return TRUE unless you set the focus to a control }
步驟 9 - 編譯並執行上述程式碼後,您將看到以下輸出。
