首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GDI快速滚动

GDI快速滚动
EN

Stack Overflow用户
提问于 2010-05-24 21:34:28
回答 2查看 1.5K关注 0票数 4

我使用GDI来创建一些自定义的textwidget。我直接画到屏幕上,没有缓冲。

现在我想实现一些快速滚动,简单地像素化帧缓冲区的相应部分(并且只重画新的可见线条)。

例如,我注意到富文本控件是这样做的。如果我使用一些GDI绘图函数在富文本控件上直接绘制到帧缓冲区,然后滚动富文本,它也会将我的绘图与文本一起滚动。所以我假设富文本只是像素移位,它是帧缓冲区的一部分。

我也想这么做,但不知道怎么做。

有人能帮帮忙吗?(独立于编程语言)

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2010-05-24 23:48:06

ScrollWindowEx()应用编程接口函数已针对此进行了优化。

票数 8
EN

Stack Overflow用户

发布于 2010-05-24 23:18:50

参见BitBlt函数:

BitBlt函数执行与指定的源设备上下文中的像素矩形相对应的颜色数据到目标设备上下文的位块传输。

文档末尾的示例:Capturing an Image

您可以使用位图来捕获图像,并且可以将捕获的图像存储在内存中,并将其显示在应用程序窗口中的不同位置。..。在某些情况下,您可能希望应用程序捕获图像并仅临时存储它们。..。要临时存储图像,应用程序必须调用CreateCompatibleDC来创建与当前window DC兼容的DC。创建兼容的DC后,通过调用CreateCompatibleBitmap函数创建具有适当尺寸的位图,然后通过调用SelectObject函数将其选择到此设备上下文中。

在创建了兼容的设备上下文并在其中选择了适当的位图之后,您可以捕获图像。BitBlt函数用于捕获图像。此函数执行位块传输,即将数据从源位图复制到目标位图。..。要重新显示图像,请再次调用BitBlt,将兼容的DC指定为源DC,将窗口DC指定为目标DC。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2897318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档