mfc如何设置窗口透明

MFC
883
2023/9/1 19:54:31
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

要设置MFC窗口透明,可以使用以下步骤:

  1. 在窗口类的消息映射中添加WM_CREATE消息的处理函数。
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
ON_WM_CREATE()
// 其他消息映射
END_MESSAGE_MAP()
  1. 在WM_CREATE消息的处理函数中,将窗口的样式设置为WS_EX_LAYERED,并调用SetLayeredWindowAttributes函数设置透明度。
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表示使用透明度值。

  1. 编译并运行程序,窗口将以指定的透明度显示。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: MFC中createfont怎么使用