寻找一个窗户 tooltips 类暗示窗口,我看到,它吸引了其下阴影 外面 提示窗口的实际矩形。

使用 SpyXX -我可以得到提示的窗口rect和类型:

Rectangle:     (440, 229)-(544, 249), 104x20
Restored Rect: (440, 229)-(544, 249), 104x20
Client Rect:   (0, 0)-(104, 20), 104x20

你会注意到的下降影你看到的是身体上 外面 窗口正在绘制的。我怎么能画一个外阴影在我的窗口,同时正在 外面 我的窗口?

注意到: 阴影是不使用的标准 CS_DROPSHADOW 类风格。 我已经证实了这种实验,还可以看到类风格是在窗口 SpyXX;它不使用 CS_DROPSHADOW:

Windows Styles:     94000001

    WS_POPUP        80000000
    WS_VISIBLE      10000000
    WS_CLIPSIBLINGS  4000000
    TTS_ALWAYSTIP          1

Extended Styles:    00080088

    WS_EX_LAYERED      80000
    WS_EX_TOOLWIN         80
    WS_EX_TOPMOST          8

所以我怎么能画在我的窗口?

注: 试图画出在桌面上直流。从格雷格*谢克特的 重定向GDI,安装和WPF应用程序:

绘制和阅读,从屏幕上 --Baaaad!

最后,由于我们在重定向 话题,一个特别危险的 实践是写到屏幕上, 无论是通过使用GetDC(NULL) 和写作,或试图 做异或橡胶带线,等等。还有 两个大的原因,写 屏幕上是坏的

这是昂贵的...写到 屏幕本身并不昂贵,但是它 几乎总是伴随着 阅读画面,因为一个 通常不会读修改写 操作的喜欢异或当写到 屏幕上。阅读的视频 存储器表面上是非常昂贵的, 需要同步的梦工场, 和摊整个GPU管, 好的梦工场应用程序管。
这是不可预测的...如果你不知怎的, 管理,以获得实际的主 并写信给它,就不可能有 可预测性,如何长什么你 写信给主仍将是上 屏幕上。由于UCE不知道 关于它,它可能会在清除 下一帧刷新,或者,它可能持续 一个很长的时间,这取决于 还有什么需要可以更新上 屏幕上。(我们真的不允许直接 书面形式向主无论如何, 这非常的原因...如果你试图 访问的启主, 实例,梦工场将关闭,直到 访问的应用程序退出)

有帮助吗?

解决方案

您无法将窗外画在你所描述的方式。

如果你右击桌面,然后转到属性/外观/效应和“下菜单显示阴影”,取消选中......你将不再有阴影。

底线是,这是窗口管理程序的不是产品。

其他提示

问:你怎么画外的一个窗口?A:画里面 另一个 窗户!

第一件事要注意的是,该工具提流的实际上 使用 CS_DROPSHADOW 风格-但注意,这是一个 风格,而不是一个 窗口 风格,所以你必须看看 卡在间谍++性对话找到它。你会看到的 tooltips_class32 windows确实有这个和其他几个人。

但是,这只是导致下一个问题-怎么 工作?嗯,看来Windows实现这种通过创建一个帮助HWND绘制影子大概是创造另一个窗口一样大小和形状为一个它的阴影,填补它的灰,把它直接下的主要窗口,并将其设置为一个 WS_EX_LAYERED 窗口这样的阴影可以是透明的和淡出边缘周围的使用alpha-融合。并没有什么可以阻止你从使用同样或类似技术,自己如果你想添加一个不同类型的阴影响到自己的一个窗口。

因此,长话短说: 如果你想画外的自己的窗口,创建一个辅助透明窗口,在一般地区,要吸取和借鉴,帮助窗口替代。

--

现在,如果你试图找到一个这些助手的影子窗间谍++,你不会找到多。不同的是 tooltip_class32 窗口,这是长期和只是隐藏或展示自己的需要,这些影子窗口是一个更难以捉摸的生物:它们只是创建为,只要需要,所以你不得不刷新的间谍++虽然没有一个提示或菜单或其他窗口中使用的阴影存-这是棘手的,因为大多数提示和单将会尽快消失你的鼠标移动到开关于间谍++.但事实证明,该工具提示在间谍++'s自己的工具栏将坚持:因此,开始的间谍++,悬停在一个项目工具栏和打 F5 刷新HWND树的同时,的提示和阴影。现在滚下来,你应该见第三次和第四次可见Hwnd在树是提示信息本身,并有权在此之后, SysShadow 窗口。不幸的是,由于该工具提及的阴影已经通过现在已经消失,如果你试图获得性对话,HWND,你会得到一个得到一个空白酒店对话与'无效的窗口'的消息。如果你真的想捅周围,看看这SysShadow工作,什么风格,它本身使用等等,你可以创建一个目标的应用程序具有长期使用的弹出窗口 CS_DROPSHADOW 然后你可以探索在间谍++在休闲。

(最后,要注意这些阴影是一个完全不同的事情比的阴影,你看,当一个应用程序的窗口,是在另一个上述的另一个由于Vista:这种类型的阴影的部分是航空玻璃模式,并处理由一样 桌面组合经理 这增加了玻璃的标题栏的效果,它不使用或不需要帮手windows实施的阴影。)

我不会感到惊讶如果阴影紧密联系在一起的窗口管理器本身;它是所有谁决定的窗口管理器后的什么窗口得到画的本身的部分和就可以做到这一点。我不认为这是火箭科学油漆影子如果超过所有控制的不断积累,其窗口管理器了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top