Vah*_*hid 2 delphi window tooltip shadow
我在Delphi中创建了一个程序,它监视一个窗口并在创建时使其不可见.窗口变得不可见,但它的影子永远保留在桌面上(直到下次重启).我要隐藏它的窗口是今天的工具提示,你可以在Windows 7和8中的系统托盘上按住鼠标时看到它.我怎样才能隐藏阴影?
这是代码:
h := FindWindow('ClockTooltipWindow', nil);
if (IsWindow(h)) then ShowWindow(h, SW_HIDE);
Run Code Online (Sandbox Code Playgroud)
这是剩余阴影的图片:

这是一个有趣/非常粘的神器,可能阴影得到视频驱动程序的一些特殊处理.我不知道为什么/它如何发生,也许工具提示只是在它隐藏时即将被删除的阴影.
作为一种解决方法,您可以在隐藏到不会绘制阴影的大小之前调整工具提示的大小,例如:
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;
Run Code Online (Sandbox Code Playgroud)
然而,在我看来,更好的方法是很好地要求它消失:
h := FindWindow('ClockTooltipWindow', nil);
if (IsWindow(h)) then
PostMessage(h, WM_SYSCOMMAND, SC_CLOSE, 0);
Run Code Online (Sandbox Code Playgroud)