建立一个窗体,让他透明(窗口后面的东西能即时看见),比如看视频,用这个窗口遮挡住视频窗口,要不影响看视频!
而且这个窗口在遮挡住视频窗口的时候不能点击视频窗口
简单的理解就是说在屏幕前方放个玻璃,你可以看见后面的图像,却不能点击到!
如何做到啊,我试过很多透明方法,好像都不行
SetLayeredWindowAttributes 这个就更不行了,透明的很彻底,彻底到消失不见了,点不了窗口了都!
高手来啊!
而且这个窗口在遮挡住视频窗口的时候不能点击视频窗口
简单的理解就是说在屏幕前方放个玻璃,你可以看见后面的图像,却不能点击到!
如何做到啊,我试过很多透明方法,好像都不行
SetLayeredWindowAttributes 这个就更不行了,透明的很彻底,彻底到消失不见了,点不了窗口了都!
高手来啊!
解决方案 »
- webbrower 错误?急,在线等==
- 如何快速 统计 一个文本文件中 某个指定字符 出现的个数 ?
- 想做出如果效果,怎么实现?有这样的控件吗? 有图
- 一个关于delphi连接ACCESS的问题,由于是用在小弟的毕业设计,希望各位大侠来帮帮忙!!
- *.mdl是什么格式的文件,用什么工具可以打开阿?
- 如在程序中关闭当前计算机的活动窗口?
- 请问,DELPHI如何调用3DMAX的建筑模型或者通信
- 放分,另外欢迎大家有时间去http://www.huachu.com.cn/bbs/index.asp坐坐
- 求picshow控件的下载地址、安装及使用方法!
- cgi+Kylix
- COM高手进来!
- 为何Apache中创建的线程释放不了?
raize里面有的。
1. 前置透明度为1的窗口,不仔细看,基本看不到
2. 截获WNDPROC,干掉鼠标和键盘消息
procedure TForm1.CreateWnd;
begin
inherited CreateWnd;
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or
WS_EX_TRANSPARENT or
WS_EX_LAYERED);
end;
同时需要提前声明此过程:procedure CreateWnd; override;
完整代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
procedure CreateWnd; override;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.CreateWnd;
begin
inherited CreateWnd;
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or
WS_EX_TRANSPARENT or
WS_EX_LAYERED);
end;
end.
编辑完成后运行,好象没有见到窗口,实际上窗体已经创建成功了,只是窗体是完全透明的,而且穿透了鼠标,所以感觉不到窗体的存在。
如果需要窗体为半透明,可以制定窗体的AlphaBlend属性为True,并且指定AlphaBlendValue属性的值即可,255为不透明,0为完全透明。
以上代码在Delphi7中编译成功。如果大家还有其他好方法的话请交流。