要設置MFC窗口透明,可以使用以下步驟:
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
ON_WM_CREATE()
// 其他消息映射
END_MESSAGE_MAP()
int CMyWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CWnd::OnCreate(lpCreateStruct) == -1)
return -1;
// 設置窗口樣式為WS_EX_LAYERED,使窗口支持透明度
SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE) | WS_EX_LAYERED);
// 設置透明度,第一個參數為窗口句柄,第二個參數為透明度值,第三個參數為透明度設置標志
SetLayeredWindowAttributes(GetSafeHwnd(), RGB(255, 0, 0), 128, LWA_ALPHA);
return 0;
}
在上述代碼中,RGB(255, 0, 0)表示透明顏色,128表示透明度值(0-255),LWA_ALPHA表示使用透明度值。