将屏幕截图(Bitblt)存储在内存缓冲区中,以便通过IdTCPClient发送 在Windows Vista……/P>中的C++ Builder 6中的P> Graphics:: TBitmap * bmpscreencapture = new Graphics::TBitmap; bmpscreencapture-> Height = Screen-> Height; bmpscreencapture-> Width = Screen-> Width; HDC ScreenSrc = GetWindowDC (0); BitBlt (bmpscreencapture-> Canvas-> Handle, 0, 0, Screen-> Width, Screen-> Height, ScreenSrc, 0, 0, SRCCOPY); Canvas->Draw(10, 10, bmpscreencapture); ReleaseDC (GetDesktopWindow (), ScreenSrc); delete bmpscreencapture;

将屏幕截图(Bitblt)存储在内存缓冲区中,以便通过IdTCPClient发送 在Windows Vista……/P>中的C++ Builder 6中的P> Graphics:: TBitmap * bmpscreencapture = new Graphics::TBitmap; bmpscreencapture-> Height = Screen-> Height; bmpscreencapture-> Width = Screen-> Width; HDC ScreenSrc = GetWindowDC (0); BitBlt (bmpscreencapture-> Canvas-> Handle, 0, 0, Screen-> Width, Screen-> Height, ScreenSrc, 0, 0, SRCCOPY); Canvas->Draw(10, 10, bmpscreencapture); ReleaseDC (GetDesktopWindow (), ScreenSrc); delete bmpscreencapture;,graphics,tcp,c++builder,indy,c++builder-6,Graphics,Tcp,C++builder,Indy,C++builder 6,我目前有一段代码用于捕获屏幕并将屏幕捕获显示在空表单上。我想做的是将捕获的图像存储到内存缓冲区中,然后使用indy客户端IdTCPClient通过internet发送此缓冲区,以供使用indy server IDTCPServer的类似程序接收 有人对如何实现这一目标有任何建议/想法吗??我对图形编程相当陌生使用TBitmap::SaveToStream()方法将数据保存到TStream,例如TMemoryStream。然后将TStream传递给Indy的TIdTCPConnection::Wr

我目前有一段代码用于捕获屏幕并将屏幕捕获显示在空表单上。我想做的是将捕获的图像存储到内存缓冲区中,然后使用indy客户端IdTCPClient通过internet发送此缓冲区,以供使用indy server IDTCPServer的类似程序接收


有人对如何实现这一目标有任何建议/想法吗??我对图形编程相当陌生

使用TBitmap::SaveToStream()方法将数据保存到TStream,例如TMemoryStream。然后将TStream传递给Indy的TIdTCPConnection::WriteStream()(Indy 9及更早版本)或TIdIOHandler::Write(TStream)(Indy 10)方法。在接收端,您可以使用TIdTCPConnection/TIdIOHandler::ReadStream()方法将数据读入TStream,然后将TStream传递给TBitmap::LoadFromStream()方法