我正在创建一个Windows Mobile自定义SIP,并且当用户按下或“悬停”时通过键盘上的按钮,我使用:: GetDC(NULL)将相应的所选图像(iPhone-esque)绘制到屏幕的DC上。它是在Win32 C ++中开发的。

我的问题是我永远无法让屏幕重绘自己,删除之前绘制的密钥。我已经尝试了所有我能想到的强制它,:: RedrawWindow()使用NULL或任何Get..Window函数作为HWND的所有不同的params组合,以及所有标志组合(INVALIDATE | UPDATENOW | ERASENOW | ALLCHILDREN等)。我也尝试使用:: GetActiveWindow和:: GetForegroundWindow,使用:: GetDesktopWindow等对变形底层应用程序进行重新设置。我基本上没有想法,这是阻止我的最后一件事。在我的Windows Mobile设备上使用它。有没有人有任何想法?任何帮助将不胜感激。

我已经提供了一些屏幕截图来说明我的困境。

截屏前 点击 截屏后 结果

在http://img13.imageshack.us/img13/9861/cezoom1之前。 png http://img3.imageshack.us/img3/7481/之后cezoom2.png 点击 点击 提前谢谢!

有帮助吗?

解决方案

为什么不创建一个临时窗口并绘制到那个?而不是绘制到背景DC?当你破坏窗口时,背景应该自动重新绘制。

我只是在猜测,因为我不知道Windows Mobile,但可能是Windows正在缓存最后一个被吸引到DC的东西,并在每次使窗口无效时重新绘制它。

其他提示

您是否在屏幕上尝试过InvalidateRect?

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