是否有必要使用ScrollWindowEx/ScrollWindow/ScrollDC进行滚动?

dev*_*roy 0 c++ winapi

我正在使用我一直在处理的自定义编辑控件中实现滚动.我想知道的是,使用ScrollWindowEx/ScrollWindow/ScrollDC来实现滚动是必不可少的吗?我看到ScrollWindowEx只是滚动绘画区域.一切都很好,但由于我的编辑控件实现了双缓冲,我还必须更新我的BitBlt.这是一件微不足道的事情,但我想知道它是否必不可少.如果我只使用SetScrollInfo,那也会产生相同的效果.我在这里看到的唯一优势是,当用户向上或向下滚动时,那里已经存在一些文本(因为ScrollWindowEx会移动目标客户区域)并且我不必费心重新绘制.有没有其他优势,或者使用ScrollWindowEx的原因?我是第一次在win32中滚动,这实际上是我第一次独自完成所有处理而不是为我做api,所以我真的不知道如何去做.

PS为了清楚起见,我没有使用MFC.只有Win32 api.编程语言:非托管C++

Ala*_*kes 5

您可以以任何方式实现滚动.

ScrollWindow 等将滚动客户区的相关部分,并使那些需要重新绘制的部分无效.

一般来说,这是一种处理滚动的有效而简单的方法,所以很明显它很受欢迎.但是,如果您能够证明在您的情况下您可以更有效地获得相同的结果,那就去做吧.