- 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 - 編譯並執行上述程式碼後,您將看到以下輸出。