如何让程序屏蔽"显示桌面"的消息,让窗口不会在桌面上消失 -自己解决了,哈哈 ( 积分: 100 )

  • 主题发起人 主题发起人 emitsong
  • 开始时间 开始时间
E

emitsong

Unregistered / Unconfirmed
GUEST, unregistred user!
方法一:
procedure TForm1.Createparams(var params: TCreateParams);
begin
inherited CreateParams(Params);
with params do
begin
Style:=WS_POPUP or WS_BORDER;
ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST or WS_EX_NOACTIVATE or WS_EX_WINDOWEDGE;
WndParent:=getDeskTopWindow;
end;
end;
方法二:
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(application.handle,GWL_ExSTYLE,WS_EX_TOOLWINDOW);
 SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;
这两种方法都是将窗口放在了最上面,其他程序的窗口无法使用,因为都在他下面,
我是希望其他窗口也可以在他上面,而只是屏蔽"显示桌面"的消息
 
方法一:
procedure TForm1.Createparams(var params: TCreateParams);
begin
inherited CreateParams(Params);
with params do
begin
Style:=WS_POPUP or WS_BORDER;
ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST or WS_EX_NOACTIVATE or WS_EX_WINDOWEDGE;
WndParent:=getDeskTopWindow;
end;
end;
方法二:
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(application.handle,GWL_ExSTYLE,WS_EX_TOOLWINDOW);
 SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;
这两种方法都是将窗口放在了最上面,其他程序的窗口无法使用,因为都在他下面,
我是希望其他窗口也可以在他上面,而只是屏蔽"显示桌面"的消息
 
是不是没人接分呀
 
说说是如何实现的,你有没有忘记屏蔽快捷键[ windows+D] 呢?
 
windows+D是什么
 
定义自己的消息处理过程,判断最小化消息。
 
干啥用??
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
766
SUNSTONE的Delphi笔记
S
后退
顶部