首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

VB 實作動態字幕播放:全螢幕背景配合字模控件的關於視窗

     編輯:VC 教學

設計目標

傳統靜態關於視窗單調,欲實現電影字幕般的動態文字顯示效果。

實作步驟

  1. 全螢幕模擬:App.InitInstance 移除選單、標題、邊框,MoveWindow 覆蓋全螢幕,隱藏工作列 (FindWindow("Shell_TrayWnd"))。MainFrame::OnClose 恢復工作列。
  2. 背景貼圖:View::OnPaint 雙緩衝繪製背景 BMP,OnEraseBkgnd 回傳 TRUE 防止閃爍。
  3. 無模式對話框承載字幕:資源建立 Popup/NoBorder 對話框,放置 CStatic 佔滿客戶區。View 中 Create、MoveWindow (預留邊框)、ShowWindow。
  4. 整合字模顯示控件:引入 ZgMemDC、ZgDraw、TitleShow、AutoFont 等類別,修改字體適配系統風格。對話框初始化時逐行加入動態顯示內容。
  5. 攔截 ESC/Enter 關閉:PreTranslateMessage 過濾 VK_RETURN/VK_ESCAPE 返回 TRUE。

關鍵程式碼片段

' App.InitInstance
m_pMainWnd->SetMenu(NULL);
m_pMainWnd->ModifyStyle(WS_THICKFRAME|WS_CAPTION, 0);
m_pMainWnd->MoveWindow(CRect(0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN)), TRUE);
FindWindow("Shell_TrayWnd",NULL)->ShowWindow(SW_HIDE);

' View::OnPaint 雙緩衝貼背景
HBITMAP hbm = LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BACKBMP));
HDC hMem = CreateCompatibleDC(NULL);
SelectObject(hMem, hbm);
StretchBlt(dc.m_hDC, 0,0,1024,768, hMem, 0,0,1024,768, SRCCOPY);
DeleteDC(hMem); DeleteObject(hbm);

' 對話框建立與字幕載入
m_pAboutDlg = new CShowAboutDlg();
m_pAboutDlg->Create(IDD_ABOUT);
m_pAboutDlg->MoveWindow(CRect(18,18,CX-13,CY-16), TRUE);
m_pAboutDlg->m_AboutCtrl.MoveWindow(rect, TRUE);
m_pAboutDlg->ShowWindow(SW_SHOW);
' m_pAboutDlg->m_AboutCtrl.AddText(...動態字幕內容...)

編譯執行即可看到全螢幕背景配合動態字幕播放的關於視窗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved