GDI +抖动问题

时间:2008-12-18 07:10:10

标签: c++ gdi+ gdi

我有一个使用Win32 API for Windows的C ++应用程序,当我不知道它应该是什么时,我遇到了GDI +抖动问题。

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

当多边形出现在屏幕上时,它们是抖动的而不是透明的,并且似乎只显示很少的颜色(可能是256?)当我在C#中使用.NET接口在GDI +中执行相同的操作时,它可以工作很好,这让我想知道发生了什么。

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

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

2 个答案:

答案 0 :(得分:0)

  

只在远程桌面上发生

许多远程应用程序会降低颜色深度,以减少带宽需求。虽然我没有使用远程桌面,但在某些VNC连接上也是如此。我会检查您的RD服务器和客户端设置。

答案 1 :(得分:0)

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

  1. 在wm_paint上绘图时,你实际上是直接在屏幕表面上绘图,而.net通常使用双缓冲(在内存中绘制位图,然后将整个位图打开)
  2. gdi +中有一些设置会影响绘图质量。也许屏幕上,屏幕外和远程绘画有不同的默认值?