VC:透明窗体+接收鼠标事件

来源:互联网 发布:员工互评系统源码 php 编辑:程序博客网 时间:2024/05/20 14:27

VC将窗体(基于对话框)设置为透明后,你可以选择pass鼠标事件到它下面的窗体或者自己接收鼠标事件。

1. pass鼠标事件,就是鼠标穿透窗体到它下面的其它窗体上

void SetWndTransparent(BYTE bAlpha){DWORD dwExStyle=GetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE|WS_EX_LAYERED);if((dwExStyle & 0x80000) != 0x80000)SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, dwExStyle^0x80000);SetLayeredWindowAttributes(0, bAlpha, LWA_ALPHA);}//设置70%透明度SetWndTransparent((255 * 70) / 100);

2. 窗体自己接收鼠标事件:

DWORD dwExStyle=GetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE|WS_EX_LAYERED);
改为
DWORD dwExStyle=GetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE^WS_EX_LAYERED);

就是将 | 改为 ^

原创粉丝点击