我在一form上放一大Image,再放若干Edit和若干小Image,用于显示从数据库中读出的数据,最后,在大Image上绘图。 请问: 我怎样才能把绘图之后的大Image区域保存为一BMP图象?下面有些代码,据说是支持抓取某窗体(或窗体控件)的区域,用了,不行!请大家指教:
procedure g_fun_SnatchScreen(HWnd:THandle);
var
TheRECT: TRect;
TheWidth: integer;
TheHeight: integer;
SourceDC: integer;
DestDC: integer;
BHandle: integer;
Wnd: integer;
begin
GetWindowRect(HWnd, therect);
thewidth := therect.Right - therect.left;
TheHeight := therect.Bottom - therect.Top;
sourcedc := CreateDC('Display', 0, 0, 0);
DestDC := CreateCompatibleDC(sourcedc);
BHandle := CreateCompatibleBitmap(sourcedc, thewidth, TheHeight);
SelectObject(DestDC, BHandle);
BitBlt(DestDC, 0, 0, TheWidth, TheHeight, SourceDC, TheRECT.Left, TheRECT.Top, MERGECOPY);
wnd := HWnd;
OpenClipboard(Wnd);
EmptyClipboard;
SetClipboardData(2, BHandle);
CloseClipboard;
DeleteDC(DestDC);
ReleaseDC(BHandle, SourceDC);
end;
procedure g_fun_SnatchScreen(HWnd:THandle);
var
TheRECT: TRect;
TheWidth: integer;
TheHeight: integer;
SourceDC: integer;
DestDC: integer;
BHandle: integer;
Wnd: integer;
begin
GetWindowRect(HWnd, therect);
thewidth := therect.Right - therect.left;
TheHeight := therect.Bottom - therect.Top;
sourcedc := CreateDC('Display', 0, 0, 0);
DestDC := CreateCompatibleDC(sourcedc);
BHandle := CreateCompatibleBitmap(sourcedc, thewidth, TheHeight);
SelectObject(DestDC, BHandle);
BitBlt(DestDC, 0, 0, TheWidth, TheHeight, SourceDC, TheRECT.Left, TheRECT.Top, MERGECOPY);
wnd := HWnd;
OpenClipboard(Wnd);
EmptyClipboard;
SetClipboardData(2, BHandle);
CloseClipboard;
DeleteDC(DestDC);
ReleaseDC(BHandle, SourceDC);
end;
delphi帮助里有例子
请高手继续指教!