请教一下“printscreen”键截图的原理!!!

sunlinwh 2007-12-17 11:42:51

  想请教一下,按下这个键后,WINDOWS都做了哪些操作,图源是哪? 和普通的GDI截图有什么不同?

  谢谢!!
...全文
286 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunlinwh 2007-12-18
  • 打赏
  • 举报
回复

多谢回复!!

brightyang 2007-12-17
  • 打赏
  • 举报
回复
应该是很到桌面画布

然后前该位图保存
Henry.6 2007-12-17
  • 打赏
  • 举报
回复
学习
comanche 2007-12-17
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
DC, Data: THandle;
Pal: HPALETTE;
Canvas: TCanvas;
Bitmap: TBitmap;
r: TRect;
Fmt: Word;
begin
DC := GetDC(0); // 关键在这里吧,0 代表的是屏幕 Hwnd, 此外还可以是任何的 Hwnd, GetDesktopWindow()是桌面Hwnd
try
Canvas := TCanvas.Create;
Bitmap := TBitmap.Create;
try
Canvas.Handle := DC;
r := Screen.DesktopRect;
Bitmap.Width := r.Right;
Bitmap.Height := r.Bottom;
Bitmap.Canvas.CopyRect(r, Canvas, r);
Bitmap.SaveToClipboardFormat(Fmt, Data, Pal);
Clipboard.SetAsHandle(Fmt, Data);
finally
Bitmap.Free;
Canvas.Free;
end;
finally
ReleaseDC(0, DC);
end;
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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