如何在delphi中创建中间画布?

时间:2014-03-25 09:59:21

标签: delphi canvas handle

我有一个应用程序,我需要将图形打印到临时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不会刷新。有没有一种聪明的方法用我正在使用的全局变量来做这个,或者我需要使用局部变量,如果有的话,该怎么做?

0 个答案:

没有答案