我有一个应用程序,我需要将图形打印到临时TCanvas。我的问题是,一旦我吸引它,我就无法刷新这个画布。这是我的所作所为:
var
BitMap : TBitmap;
WindowHandle : HWND;
ScreenDC,bufferDC : HDC;
bufferBitmap : HBitmap;
tempcanvas : TCanvas;
begin
windowhandle := 0;
tempcanvas := TCanvas.Create;
screenDC := GetwindowDC(WindowHandle);
BufferDC := CreateCOmpatibleDC(ScreenDC);
TempCanvas.Handle := BufferDC;
BufferBitmap := CreateCompatibleBitmap(ScreenDC, GetDeviceCaps(ScreenDC, HORZRES),
GetDeviceCaps(ScreenDC,VERTRES));
SelectObject(BufferDC,BufferBitmap);
TempCanvas.Handle := getDeviceContext(windowHandle);
(...)
当我移出作用域然后使用新的过程调用返回时,Canvas不会刷新。有没有一种聪明的方法用我正在使用的全局变量来做这个,或者我需要使用局部变量,如果有的话,该怎么做?