每周一记!
接上一篇内容 使用GDI实现视频字幕及特效,在实现了写入字幕功能后,添加一个透明的添加字幕窗口。
首先利用Windows窗口的扩展风格——分层窗口,创建一个对某一特定颜色值透明的窗口(如果直接设置窗口透明的话,整个窗口都会透明,无法显示需要添加的字幕)。
HWND hWnd = CreateWindowEx(WS_EX_LAYERED, TEXT("TestWindow"), TEXT("透明窗口"), WS_POPUP | WS_VISIBLE, 0, 0, 20, 20, NULL, hInstance, NULL);
SetLayeredWindowAttributes(hWnd, 0, 0, LWA_COLORKEY);
这样就创建了一个对黑色透明的窗口。
然后我们在WM_PAINT消息处理中给字幕框绘制边框和字幕内容。
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code here...
RECT rc;
GetClientRect(hWnd, &rc);
//绑定字体
HFONT hOldFont = (HFONT)SelectObj