水
水流星
Unregistered / Unconfirmed
GUEST, unregistred user!
让一个窗体不接受消息后 窗体中的控件仍能接受消息
搜索了下 找到能使窗体不接受消息的
原提问问题是:
我有个窗体. 始终在最上方. 我要它不接受任何如键盘.鼠标.消息 好像她不存在一样.并且可以把消息传递到它下面的窗体.
比如下面有个notepad 我打字. 它就透过窗体在下面的notepad里打字. 我单击鼠标在窗体上拖动.
它就在下面的notepad里选择文本拖动了.
实现:
const
WS_EX_LAYERED = $80000;
WS_EX_TRANSPARENT = $20;
LWA_ALPHA = $2;
procedure TForm2.Button1Click(Sender: TObject);
var
OldStyle: Integer;
begin
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, 0, 255, LWA_ALPHA);
SetWindowLong(Handle, GWL_EXSTYLE, OldStyle Or WS_EX_LAYERED Or WS_EX_TRANSPARENT);
end;
end.
但我窗体上有Button按钮 我想这按钮仍然能接受到消息,至少能接受鼠标消息 点击。这又要如何实现呢?
搜索了下 找到能使窗体不接受消息的
原提问问题是:
我有个窗体. 始终在最上方. 我要它不接受任何如键盘.鼠标.消息 好像她不存在一样.并且可以把消息传递到它下面的窗体.
比如下面有个notepad 我打字. 它就透过窗体在下面的notepad里打字. 我单击鼠标在窗体上拖动.
它就在下面的notepad里选择文本拖动了.
实现:
const
WS_EX_LAYERED = $80000;
WS_EX_TRANSPARENT = $20;
LWA_ALPHA = $2;
procedure TForm2.Button1Click(Sender: TObject);
var
OldStyle: Integer;
begin
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, 0, 255, LWA_ALPHA);
SetWindowLong(Handle, GWL_EXSTYLE, OldStyle Or WS_EX_LAYERED Or WS_EX_TRANSPARENT);
end;
end.
但我窗体上有Button按钮 我想这按钮仍然能接受到消息,至少能接受鼠标消息 点击。这又要如何实现呢?