procedure TFormKXianMain.FormCreate(Sender: TObject);
var hScrDC, hMemDC: HDC;
hBitmap, hOldBitmap: HWND; // 位图句柄
begin
memCanvas:=TCanvas.Create;
//为屏幕创建设备描述表
hScrDC := CreateDC('DISPLAY', NIL, NIL, NIL);
//为屏幕设备描述表创建兼容的内存设备描述表
hMemDC := CreateCompatibleDC(hScrDC);
// 创建一个与屏幕设备描述表兼容的位图
hBitmap := CreateCompatibleBitmap(hScrDC, Width, Height);
// 把新位图选到内存设备描述表中
hOldBitmap := SelectObject(hMemDC, hBitmap);
memCanvas.Handle:=hMemDC;
// memCanvas:=Canvas;
end;
procedure TFormKXianMain.RefreshBox;
begin
BitBlt(Canvas.Handle, 0, 0, Width, Height, memCanvas.Handle, 0, 0, SRCCOPY);
end;
这是两个主要函数,将图先画在memCanvas上,然后用下面函数copy到当前Canvas上。呵呵