SetLayeredWindowAttributes未定义的解决方案

1 对于未定义的风格进行自定义

#define WS_EX_LAYERED 0x00080000
#define LWA_COLORKEY 0x00000001

2 动态链接函数

typedef
BOOL
(WINAPI *PFN_SETLAYEREDWINDOWATTRIBUTES)(
           HWND hwnd,
           COLORREF crKey,
           BYTE bAlpha,
           DWORD dwFlags);

PFN_SETLAYEREDWINDOWATTRIBUTES SetLayeredWindowAttributes = NULL;

 

HMODULE m_hUser32 = LoadLibrary(_T("User32.dll"));
 SetLayeredWindowAttributes = (PFN_SETLAYEREDWINDOWATTRIBUTES)GetProcAddress(m_hUser32, "SetLayeredWindowAttributes");

 

如果想通过SetLayeredWindowAttributes函数来设置窗口的透明度,那么还要求窗口具有WS_EX_LAYERED的属性

// 设置分层扩展标记
 #define WS_EX_LAYERED 0x00080000
 SetWindowLong( m_hWnd, GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE) | WS_EX_LAYERED);

 

然后就可以设置窗口的透明度了!

posted on   奔跑吧,蜗牛!  阅读(565)  评论(0编辑  收藏  举报

编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
< 2013年6月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6

导航

统计

点击右上角即可分享
微信分享提示