什么时候应该使用WS_EX_NOREDIRECTIONBITMAP?

时间:2016-07-04 07:26:38

标签: c++ windows winapi

MSDN说(Extended Window Styles):

  

WS_EX_NOREDIRECTIONBITMAP:窗口不会渲染到重定向表面。这适用于没有可见内容或使用表面以外的机制来提供视觉效果的窗口。

在这种情况下,#34;窗口呈现给重定向表面" vs"表面以外的机制"意思?以下哪一项:GDI,D3D9,D3D11,D3D12算作前者vs后者?当我使用Direct3D进行绘图时,我是否应该使用这种扩展窗口样式?

2 个答案:

答案 0 :(得分:3)

DirectComposition是您可以用来绘制没有重定向位图的窗口的主要API。没有DirectComposition的交换链上的DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL也可能会触发此模式。

使用api时要担心的一件事是,不一定会有不透明的窗口背景,所以dwm可以做很多额外的工作,混合窗口后面实际上看不到的东西

答案 1 :(得分:2)

WS_EX_NOREDIRECTIONBITMAP适用于使用DirectComposition进行渲染的窗口。

例如Sciter使用WS_EX_NOREDIRECTIONBITMAP创建窗口来支持丙烯酸合成效果,如下所示:

enter image description here

这是an ordinary Win32 window (not UWP),它使用DirectComposition和WS_EX_NOREDIRECTIONBITMAP。

在此类窗口上的渲染应通过Direct2D方式完成。在WS_EX_NOREDIRECTIONBITMAP中,GDI渲染几乎没有用。

相关问题