怎么复制一个隐藏窗口(即窗口未显示,但已经创建)上的所以内容到TImage!!
有难度哦,问过一次了,没有解决问题,只有dododo(呵呵)差不多:
Image1.Canvas.CopyRect(Image1.ClientRect,frm2.canvas,frm2.ClientRect)  
 
Image1.Refresh();  但是不能是一个隐藏窗口,而且不能被遮盖,不然就有问题!看看大家有没有办法解决!!

解决方案 »

  1.   

    self.up
    ================================================================
    我是中国鹰派!
    拒绝日货!打倒小日本!
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      FormImage: TBitmap;
    begin
      FormImage := Form2.GetFormImage;
      try
        Clipboard.Assign(FormImage);
        Image1.Picture.Assign(Clipboard);
      finally
        FormImage.Free;
      end;
    end;
      

  3.   

    void __fastcall CaptureBackground(HWND hWnd)
    {
      TRect Rect;
      
      GetWindowRect(hWnd,&Rect);
      
      // Grab background image
      Graphics::TBitmap* TempBkgnd=new Graphics::TBitmap();  TempBkgnd->Width = Rect.Width();
      TempBkgnd->Height = Rect.Height();  SendMessage(hWnd,WM_ERASEBKGND, (WPARAM)TempBkgnd->Canvas->Handle, 0);
      SendMessage(hWnd,WM_PAINT, (WPARAM)TempBkgnd->Canvas->Handle, 0);  //........
      //TempBkgnd的内容应该就是那个窗口的画面了?
      
      delete TempBkgnd;
    }
      

  4.   

    void __fastcall CaptureBackground(HWND hWnd)
    {
      TRect Rect;
      
      GetWindowRect(hWnd,&Rect);
      
      // Grab background image
      Graphics::TBitmap* TempBkgnd=new Graphics::TBitmap();  TempBkgnd->Width = Rect.Width();
      TempBkgnd->Height = Rect.Height();  SendMessage(hWnd,WM_ERASEBKGND, (WPARAM)TempBkgnd->Canvas->Handle, 0);
      SendMessage(hWnd,WM_PAINT, (WPARAM)TempBkgnd->Canvas->Handle, 0);  //........
      //TempBkgnd的内容应该就是那个窗口的画面了?
      
      delete TempBkgnd;
    }
      

  5.   

    忘了说:uses
      Clipbrd;
      

  6.   

    windofsun(太阳风)的方法可以解决本人的问题,虽然有一点点小毛病(不能复制按钮...除非显示窗口).
    BCB_FANS(四大名捕之追杀令)的确是C++方面的绝顶高手,但是本人不懂C++,兄弟,没有办法,我只好把大部分的分给windofsun(太阳风).