4

我有一个使用适用于 Windows 的 Win32 API 的 C++ 应用程序,当我不知道为什么会这样时,我遇到了 GDI+ 抖动问题。

我有一个自定义控件(自​​定义窗口)。当我收到 WM_PAINT 消息时,我在图形设备上使用 FillPolygon 绘制了一些多边形。此图形设备是使用 BeginPaint 的 HDC 创建的。

但是,当多边形出现在屏幕上时,它们会抖动而不是透明,并且似乎只显示很少的颜色(可能是 256 种?)让我想知道发生了什么。

我没有做任何特别的事情,据我所知,这是一个应该可以正常工作的简单示例。难道我做错了什么?

编辑:没关系。它只发生在远程桌面上,即使 C# 示例没有在远程桌面上抖动。远程桌面设置为 32 位颜色,所以我不知道这是怎么回事。

4

2 回答 2

0

它只发生在远程桌面上

许多远程应用程序会降低颜色深度以降低带宽要求。虽然我没有使用远程桌面,但在某些 VNC 连接上也会发生同样的情况。我会检查您的 RD 服务器和客户端设置。

于 2008-12-18T07:41:57.070 回答
0

嗯...填充能力由目标设备决定。在远程桌面上工作时,AFAIK Windows 会替换显示驱动程序,从而可以更改显示的支持功能。

  1. 在 wm_paint 上绘图时,实际上是直接在屏幕表面上绘制,而 .net 通常使用双缓冲(绘制到内存位图,然后对整个位图进行 blits)
  2. gdi+ 中有一些设置会影响绘图质量。也许屏幕上,屏幕外和远程绘画有不同的默认值?
于 2009-01-03T22:57:08.103 回答