怎样把整个窗体的内容一起打印出来?就象按下键盘上的PrintScreen键后,把当前屏幕Copy下来然后粘贴到画图工具中打印出来一样;(100个大洋)(100分

  • 主题发起人 主题发起人 jita
  • 开始时间 开始时间
J

jita

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样把整个窗体的内容一起打印出来?就象按下键盘上的PrintScreen键后,把当前屏幕Copy下来然后粘贴到画图工具中打印出来一样;(100个大洋)(100分)<br /> 怎样把整个窗体的内容一起打印出来?就象按下键盘上的PrintScreen键后,把当前
屏幕Copy下来然后粘贴到画图工具中打印出来一样;
在Delphi中实现我想不会这么复杂吧?调用Print方法在窗口最大化时不行(打印机只
会走纸,打出来是空的)。我是个初学者,望大虾能详细解答,有Demo最好!:)
E-Mail:top_hj366@sohu.com
 
屏打控件,国产,有源码:
http://1000f.com/vcls/Prnatonce.zip
 
To Wind2000:
这个软件只能打印部分控件,我的FORM上有一个TTrend,是下载的控件,
主要是用来显示趋势图,我是想把FORM一并打印下来;
还有一个问题是:新建一个工程后,放上一个Label、一个Button并添加点击事件Print
,编译后(在默认窗体大小下)点击Button,可以打印整个form的内容,但是把窗体最大化后
在点击Button不不能打印,打印机只是走纸但没有内容,不知各位遇到过这种问题没有,这
样解决的?请告知小弟一下,谢谢!!
E-mail:top_hj366@sohu.com
 
>>调用Print方法在窗口最大化时不行
我刚试了一下,调用Print方法在窗口最大化时没有问题啊。
有条件的话,换程序、换操作系统、换电脑、或者换打印机试试。
 
hwnd=GetDesktopWindow
hdc=GetWindowDC(hwnd)
canvas=TCanvas.Create
canvas.handle=hdc
Printer.begin
Doc
Printer.Canvas.CopyRect(...,canvas,...)
Printer.EndDoc
canvas.free
ReleaseDC(hwnd, hdc)
 
看看两句的效果
c++B Image1->Canvas->Handle = GetDC(this->Handle);
delphi Image1.Canvas.Handle := GetDC(this.Handle); 当前窗口
Image1.Canvas.Handle := GetDC(0);全屏
 
还有这句
Image1->Canvas->Handle = GetDC(this->Button1->Handle);
我是在C++B下调试的,
 
var //
Fullscreen:Tbitmap;
FullscreenCanvas:TCanvas;
dc:HDC;
begin
//------------------------------------------------------------
DC := GetDC (0);
//0代表整个屏幕,把它换成你要的FORM的HANDLE就行.
FullscreenCanvas := TCanvas.Create;
FullscreenCanvas.Handle := DC;
// FullscreenCanvas.textout(512,384,'Desktop test');
//ok
FullScreen:=TBitmap.Create;
FullScreen.Width :=Screen.width;
FullScreen.Height:=Screen.Height;
Fullscreen.Canvas.CopyRect(Rect(0,0,screen.Width,screen.Height),fullscreenCanvas,Rect(0,0,Screen.Width,Screen.Height));
Canvas.StretchDraw(rect(0,0,clientwidth,clientheight),fullscreen);
ReleaseDC (0, DC);
FullscreenCanvas.Free;
FullScreen.Free;
end;
 
form.print;
 
多人接受答案了。
 
后退
顶部