请问如何打印整个屏幕??(100分)

  • 主题发起人 主题发起人 scy_fjqz
  • 开始时间 开始时间
GetDesktopWindow
hdc=GetWindowDC
canvas=TCanvas.Create 把得到的hdc赋给canvas.handle
Printer.BeginDoc
把canvas拷贝到 Printer.Canvas
Printer.EndDoc
ReleaseDC hdc
 
能写清楚点吗?
怎么怪怪的//
 
全部要用到的api都写出来还不清楚啊

hwnd=GetDesktopWindow
hdc=GetWindowDC(hwnd)
canvas=TCanvas.Create
canvas.handle=hdc
Printer.BeginDoc
Printer.Canvas.CopyRect(...,canvas,...)
Printer.EndDoc
canvas.free
ReleaseDC(hwnd, hdc)
 
我想打印屏幕的时候,能够设置打印机参数,
就想我们打印word2000时,
有一个打印设置,
赐教!
 
放一printerdialog, 在打印之前, printerdialog.execute;
 
你接着加入PRINTDIALOG不就行了!!
思路为
拷贝屏幕到CANVAS或者是BITMAP
然后打印!!
 
模拟按下PRINTSCREEN键,
拷贝到文件里打印
 
我试了一下,发现打印出来的很怪,不是打印屏幕,而是
一些横状块的东西,为什么啊?
 
你把你的代码贴出来我看看哪里不妥
 

MyRect := Rect(0,0,800,600);
MyOther := Rect(0,0,Printer.PaperWidth,Printer.PaperHeight);
放在 printdialog1.Execute 后面

你原来的是把 屏幕的 10x10点 放大到打印机的 790x790 点当然古怪了
 
接受答案了.
 
后退
顶部