隐藏窗口阴影

时间:2013-04-13 15:01:40

标签: delphi window tooltip shadow

我在Delphi中创建了一个程序,它监视一个窗口并在创建时使其不可见。窗口变得不可见,但它的影子永远保留在桌面上(直到下次重启)。我要隐藏它的窗口是今天的工具提示,你可以在Windows 7&amp ;;中的systray中按住鼠标时看到它。 8.我怎样才能隐藏阴影?

这是代码:

h := FindWindow('ClockTooltipWindow', nil);
if (IsWindow(h)) then ShowWindow(h, SW_HIDE);

这是剩余阴影的图片:
enter image description here

1 个答案:

答案 0 :(得分:5)

这是一个有趣/非常粘的神器,可能阴影从视频驱动程序获得一些特殊处理。我不知道为什么/如何发生这种情况,也许工具提示只是在隐藏它时即将被摧毁的阴影中去除阴影。

作为一种解决方法,您可以在隐藏到不会绘制阴影的大小之前调整工具提示的大小,例如:

h := FindWindow('ClockTooltipWindow', nil);
if (IsWindow(h)) then begin
  SetWindowPos(h, 0, 0, 0, 1, 1, SWP_NOMOVE or SWP_NOACTIVATE);
  ShowWindow(h, SW_HIDE);
end;

然而,我认为更好的方法是很好地要求它消失:

h := FindWindow('ClockTooltipWindow', nil);
if (IsWindow(h)) then 
  PostMessage(h, WM_SYSCOMMAND, SC_CLOSE, 0);