类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
一个窗口form1在windows桌面上,窗口后面有很多快捷方式图标,但是都被form1窗口覆盖着,现在我想点击被form1窗口覆盖着的快捷方式,我怎样可以让这窗口不接受鼠标或者键盘的时间,直接将事件传递到windows桌面上?那样我就可以点击到后面的快捷方式图标,但from1窗口必须显示在windows的桌面上
网友回答:
鼠标穿透实现:
procedure TForm1.Button1Click(Sender: TObject);
begin
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or
WS_EX_LTRREADING or
WS_EX_TRANSPARENT or
WS_EX_TOPMOST or
WS_EX_TOOLWINDOW or
WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, Color, 100, LWA_ALPHA or LWA_COLORKEY);
end;
楼上的要求太...
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or
WS_EX_LTRREADING or
WS_EX_TRANSPARENT or
WS_EX_TOPMOST or
WS_EX_TOOLWINDOW or
WS_EX_LAYERED);
只要这一句,就达到你的要求可以穿透,但我想那个窗口不显示透明
哈哈,是啊!楼主可以改为:
procedure TForm1.Button1Click(Sender: TObject);
begin
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or
WS_EX_LTRREADING or
WS_EX_TRANSPARENT or
WS_EX_TOPMOST or
WS_EX_LAYERED);
end;
就可以达到你的要求。
晕,服了你的想法了
转换图片:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if pic=E:\1.jpg then
pic:=E:\2.jpg
else
pic:=E:\1.jpg;
Image1.Picture.LoadFromFile(pic);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
pic:=E:\1.jpg;
Image1.Picture.LoadFromFile(pic);
end;