K
kthy
Unregistered / Unconfirmed
GUEST, unregistred user!
一直在想,在RichEdit控件内部,微软是怎么处理文字的绘制的。因为这一过程是封装在
Riched20.dll内部,所以我一直觉得很神秘。
如果说它是动态绘制,那么,在拖动滚动条后,计算新位置的每行文字、垂直位置等,工作
量很大,经过试验,确实不能平滑滚动。然而Richedit实际上没有一点停顿、延迟等现象,
即使在较低档的电脑上也是如此;
如果说,它是在一个画布上先绘制好,卷动时只是将响应部分显示出来,那么,当处理
一片较长的文章,并且字体较大,屏幕设置为24位色时,对内存的需求非常高。在通常
内存不多的电脑上,就必然有大量的内存交换到磁盘文件上。然而实际情况并非如此。我
曾经做过试验,将一篇2M的文章,显示在一个画布上,画布大小根据计算动态设置。结果
在建立画布的过程中,磁盘狂转一通后,我的512M内存的电脑报错,内存不够!
还有一点,即使你在编辑一片非常大的文稿,当插入字符、删除字符时,后续文字的位置
有了变化,画面立即刷新,没有觉得有任何延迟,奇怪!
哪位这方面的专家给予指点一二?
Riched20.dll内部,所以我一直觉得很神秘。
如果说它是动态绘制,那么,在拖动滚动条后,计算新位置的每行文字、垂直位置等,工作
量很大,经过试验,确实不能平滑滚动。然而Richedit实际上没有一点停顿、延迟等现象,
即使在较低档的电脑上也是如此;
如果说,它是在一个画布上先绘制好,卷动时只是将响应部分显示出来,那么,当处理
一片较长的文章,并且字体较大,屏幕设置为24位色时,对内存的需求非常高。在通常
内存不多的电脑上,就必然有大量的内存交换到磁盘文件上。然而实际情况并非如此。我
曾经做过试验,将一篇2M的文章,显示在一个画布上,画布大小根据计算动态设置。结果
在建立画布的过程中,磁盘狂转一通后,我的512M内存的电脑报错,内存不够!
还有一点,即使你在编辑一片非常大的文稿,当插入字符、删除字符时,后续文字的位置
有了变化,画面立即刷新,没有觉得有任何延迟,奇怪!
哪位这方面的专家给予指点一二?