问题标签 [dwm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 有什么办法可以修复VC6.0中“DwmEnableBlurBehindWindow”的副作用?
我遇到了 MSDN 主题中提到的一个确切问题:DWM Blur Behind Overview。
调用 DwmEnableBlurBehindWindow 后,客户区变成了漂亮的玻璃,但不幸的是,控件(按钮、编辑、静态等)上的所有黑色文本也变得透明,就像MSDN 上的主题一样。
有任何解决这个问题的方法吗?
顺便说一句,我的开发环境是VC++ 6.0,我必须用DrawThemeTextEx API绘制一些发光的文本,所以我不能简单地使用DwmExtendFrameIntoClientArea。我必须使用 DwmEnableBlurBehindWindow 来启用客户区域的玻璃效果。
非常感谢!
2012/6/19 更新:通过使用“SetLayeredWindowAttributes”将窗口的透明键颜色更改为非黑色,然后使用“DwmExtendFrameIntoClientArea”可以解决玻璃窗口上的CONTROLS(BUTTONs,EDITs等)的标题文本问题.
但这样一来,“DrawThemeTextEx”就无法正常工作。看起来 DrawThemeTextEx 只能使用 RGB(0,0,0) 作为其透明键颜色。
那么,是否有任何 API 可以更改“DrawThemeTextEx”中使用的透明键颜色?
我的最终目标是在没有 MSDN 主题中提到的“DwmEnableBlurBehindWindow”副作用的玻璃(Aero)窗口上绘制一些发光的文本:DWM Blur Behind Overview,http://msdn.microsoft.com/en-us/library /aa969537.aspx。如果还有其他方法可以做到,我很高兴听到:)
非常感谢,再次!:)
c - 在 ANSI C 中使用 WinAPI 和 DWMApi
我有一个关于为 Windows 编写应用程序的问题。在 ANSI C 中编程时,我可以使用 WinAPI 和 DWMApi(航空玻璃、色带等)吗?我现在正在看 MSDN,他们使用 C++。
c# - 没有玻璃的扩展标题栏
我看到 Windows 7 向导在不需要 Aero Glass 的情况下扩展了标题栏。看这个:
我让我的应用程序与 Aero Glass 一起工作,但是没有它怎么办?
提前致谢!
c# - DWM 消息常量值
我在互联网上搜索,但我找不到我感兴趣的东西......
我试图找到的价值
提前致谢!
c - 读出 Thunderbird 未读邮件?(Linux,终端)
我正在为 dwm 构建状态栏,我想通过终端读出未读邮件计数(使用 grep、sed 或 fopen 作为文件)并通过 fopen/popen 获取它。
我正在使用 ubuntu/dwm/thunderbird 16。我认为没有包含未读电子邮件计数的文本文件...
有什么建议么?
directx - 禁用 DWM 的窗口模式下的 Direct3D 10 垂直同步问题
在禁用 DWM 的窗口模式下,Direct3D 10 上的 vsync 出现问题。
我们有一个应用程序,它呈现并呈现一些输出。它必须在窗口模式下工作,并且必须至少产生稳定的 60 fps。一个版本的应用程序使用 Direct3D 9 和另一个 Direct3D 10。当我们在窗口模式下工作时,有时我们会降低 fps(它不是“稳定”降低。在大多数情况下,我们产生稳定的 60 fps,有时它会突然降低几秒钟,然后恢复到 60 fps)。在这两个版本的应用程序中,fps 降低约为 10-20 fps。这是不可接受的。
在 Windows Vista 和 Windows 7 中,有新的图形系统,称为“桌面合成”,它改变了应用程序在屏幕上显示像素的方式。桌面合成由桌面窗口管理器 (DWM) 执行。您知道,当启用 DWM 时,应用程序会绘制到显存中的屏幕外表面,而不是由 DWM 渲染并在一段时间内呈现在显示器上。因此,我们注意到,当任务管理器中的 dwm.exe 不执行任何操作(处理时间约为 0%)时,我们的 fps 会降低,而当 dwm.exe 占用 1-3% 的处理时间时,会有稳定的 60 fps 并且一切正常好的。
我们无法影响它。因此,我们必须关闭 DWM 才能获得高稳定的 fps。当我们关闭它时,一切正常。两个版本的应用程序都有稳定的 60 fps。但是DWM是在窗口模式下做vsync的,所以当我们关闭它的时候,我们必须自己做vsync。
但是当我们关闭 DWM 时,Direct3D 10 在窗口模式下的 vsync 会出现问题。显示器顶部有图像撕裂。Direc3D 9 一直运行良好。
因此,我们有一台刷新率为 60 Hz 的显示器。
在创建交换链时,我们设置了这样的参数:
在演示时,我们设置了一个标志来打开 vsync:
并有下一个垂直同步问题。有垂直线,从左侧快速移动到右侧。并且显示器顶部有图像撕裂。
http://bit.ly/POQoFq
起初我们认为,我们做错了什么。所以我用旋转立方体安装了微软的示例“Tutorial 07: Texture Mapping and Constant Buffers”。使立方体更大,将其放置得更高,使其旋转更快并遇到相同的问题(见图)。
http://bit.ly/SevNqw
http://bit.ly/RSoEhc
http://bit.ly/UjaNPu
因此,在全屏模式下的 Direct3D 10 上一切正常。垂直同步完美运行。在 Direct3D 9 上也一切正常,在禁用或启用 DWM 的情况下,vsync 效果很好。在禁用 DWM 的窗口模式下的 Direct3D 10 上存在问题。
它在不同的计算机、不同的显卡(Nvidia 8600 GT、Nvidia 9500 GT、ATI Radeon HD 5870 Eyefinity 6)和不同版本的驱动程序上进行了测试。问题稳定重现。我们使用的是 Windows 7。
那么,为什么会出现这样的问题呢?如何解决它以及下一步该怎么做?
UPD1。如果上面的图像不可用,则有一些镜子。
https://dl.dropbox.com/u/20468014/DSC_2287.JPG
https://dl.dropbox.com/u/20468014/DSC_2308.JPG
https://dl.dropbox.com/u/20468014/DSC_2313。 JPG
https://dl.dropbox.com/u/20468014/DSC_2319.JPG
UDP2。我还想注意,我正在创建带有标志 WS_POPUP 的窗口以隐藏标题栏(它必须被隐藏)。图像撕裂出现在不同的地方。它总是在屏幕的顶部,但它可以是 20 像素,也可以是 50 像素。因此,在创建带有标题栏的窗口时,有时图像的顶部可能根本看不到图像撕裂。
c++ - 从 System::IntPtr 到 HWND 的 Covnersion
我有以下 C++ 代码:
但是,当我尝试编译时,出现以下错误:
还有其他方法可以获取HWND
我的表格吗?
c++ - C++ 中的 DwmExtendFrameIntoClientArea
我有以下 C++ 代码:
但是,当我尝试编译时,出现以下错误:
但它不起作用。它不报告任何错误,但它根本不显示正确的结果。
这是我的表单打印屏幕:
windows - 如何关闭 DwmExtendFrameIntoClientArea?
调用DwmExtendFrameIntoClientArea
窗口后,如何在保持 Aero 模式时再次将其关闭?
我尝试调用 DwmExtendFrameIntoClientArea 并将所有边距设置为 0,这似乎可以部分工作,除了我的窗口客户区的背景全是黑色并显示重绘伪影。
我正在使用Qt,setAttribute(Qt::WA_TranslucentBackground, false)
这样做后我调用了我的窗口,但它似乎没有任何效果。重置窗框后如何正确重绘客户区?
windows - DwmIsCompositionEnabled 是否仍在 Windows 8 中使用?
根据启用和控制 DWM 组成:
注意 从 Windows 8 开始,本节中的信息不再有效。DWM 不能再以编程方式被禁用,也不能在应用程序尝试绘制到主显示表面时被禁用。以下信息仅适用于 Windows 7 和更早的系统。
好的。所以我们不能再以编程方式禁用 DWM。但它仍然可以禁用吗?DwmIsCompositionEnabled在 Windows 8pfEnabled
上是否始终设置为 TRUE?
如果可以以某种方式禁用合成,那么 DwmIsCompositionEnabled 在任何方面仍然有用吗?