整个窗口保存为图片的问题

int64 2009-06-23 03:32:29
整个Form窗口保存为图片,代码:
Graphics::TBitmap *FormImage = xxForm->GetFormImage();
FormImage->SaveToFile("E:\\1.jpg");
窗口上的Label,Buttn都可以保存在图片上,问题是窗口上的Edit和RichEdit中的文字无法保存在图片上,如何解决啊?
...全文
60 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2009-06-23
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Graphics::TBitmap *bmp = new Graphics::TBitmap;
HDC hdc = ::GetWindowDC(Handle);
try
{
bmp->PixelFormat = pf24bit;

bmp->Width = Width;
bmp->Height = Height;
TRect rct(0, 0, Width, Height);

::BitBlt(bmp->Canvas->Handle, 0, 0, Width, Height, hdc, 0, 0, SRCCOPY);

bmp->SaveToFile("C:\\ccrun\\123.bmp");
}
__finally
{
delete bmp;
::ReleaseDC(Handle, hdc);
}
}
hnzlk 2009-06-23
  • 打赏
  • 举报
回复
有一点小问题,不过你可以改改就好了。如:取得屏幕的DC,然后再根据窗口的位置及大小,再一次bitblt,就会得到完整的图像了。
hnzlk 2009-06-23
  • 打赏
  • 举报
回复


Graphics::TBitmap *bitmap=new Graphics::TBitmap;

HDC hdc=::GetDC(Form1->Handle);
bitmap->Width=Form1->Width;
bitmap->Height=Form1->Height;
BitBlt(bitmap->Canvas->Handle, 0, 0, bitmap->Width, bitmap->Height, hdc, 0, 0, SRCCOPY);
bitmap->SaveToFile("C:\\11.bmp");
delete bitmap;
bitmap=NULL;
int64 2009-06-23
  • 打赏
  • 举报
回复
那应该简单吧。用bitblt函数啊。

可以详细说说或者给个代码例子吗
hnzlk 2009-06-23
  • 打赏
  • 举报
回复
那应该简单吧。用bitblt函数啊。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧