首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

小弟我开辟了一块屏幕大小的buffer,如何才能把这块buffer里面的内容一次性刷到屏幕上去

2013-03-26 
我开辟了一块屏幕大小的buffer,怎么才能把这块buffer里面的内容一次性刷到屏幕上去SDK 我开辟了一块屏幕大

我开辟了一块屏幕大小的buffer,怎么才能把这块buffer里面的内容一次性刷到屏幕上去
SDK 我开辟了一块屏幕大小的buffer,怎么才能把这块buffer里面的内容一次性刷到屏幕上去呢,现在我是用
for (i = 0; i < LCD_HGT; i++)
{
    for (j = 0; j < LCD_WID; j++)
    {
        SetPixel(hdc, j, i, *pColo);
        pColo++;
     }
}
一个点一个点刷的,好慢,谁知道怎么一次性刷上去啊
[解决办法]
用TCanvas里的scanline
[解决办法]
Canvas->BrushCopy()   // 较快
Canvas->StretchDraw() // 较慢,但可改变大小
[解决办法]
Canvas->CopyRect(),很快,其实是调用了Bitblt()。

[解决办法]
SDK就用Bitblt()、StretchBlt()。

[解决办法]
那你得调用SetDIBitsToDevice(),lpvBits传入你的内存数据的指针,由于你的数据是“单纯的位图数据,不包含其他信息”,你得建立一个BITMAPINFO结构让它知道你的内存位图数据的组织结构(宽、高、彩色数等等)。

热点排行