您的位置:首页 > 其它

实现“鼠标穿透窗体”功能

2007-01-27 16:09 1006 查看
1、DELPHI实现:

var
ws: DWORD;
begin
ws := GetWindowLong(Form1.Handle, GWL_EXSTYLE);
ws := ws or WS_EX_TRANSPARENT;
ws := ws or $80000;
SetWindowLong(Form1.Handle, GWL_EXSTYLE, ws);
end;

2、在win2000下实现透明窗口

假设要透明的是一个对话框

1.在主文件的顶部#define _WIN32_WINNT 0x5000

否则,WS_EX_LAYERED未定义

2.在WM_INITDIALOG里:
设置风格为WS_EX_LAYERED

SetWindowLong(hWnd,GWL_EXSTYLE,GetWindowLong(hWnd,GWL_EXSTYLE)|WS_EX_LAYERED);

3.调用SetLayeredWindowAttributes函数
SetLayeredWindowAttributes(hWnd, 0, (255 * 70) / 100, LWA_ALPHA);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: