Graphics.FromHwnd(IntPtr.Zero);

行者无疆freedom 2010-06-29 03:37:01
这句代码是什么意思啊?
在一个C#截图程序中的代码,哪个帮解析下
...全文
551 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
aolongxue 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hbhbice 的回复:]
IntPtr.Zero 到底是什么意思?
[/Quote]

为空的句柄,IntPtr是托管代码里用来表示VC++里面的指针用的,常用来表示句柄

至于句柄是什么,我也不是太明白,好像是操作系统用来维护程序内对像的唯一标识
aolongxue 2010-07-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wuyazhe 的回复:]
不知道你咋测试的。
[/Quote]

貌似我测试也没起效果
LoveShashaForEver 2010-07-06
  • 打赏
  • 举报
回复
学习试试
兔子-顾问 2010-06-30
  • 打赏
  • 举报
回复
不知道你咋测试的。
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyazhe 的回复:]
的确可以。这个写法太棒了。楼主。

C# code

using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
g.DrawLine(Pens.Black, 0, 0, 500, 800);
}


你吧这个放你某个按钮里,点一下就看到效果了。
就是你这个Graphics对象绘制不受窗体的边框限制,整个屏幕都可以绘制,……
[/Quote]
我把这个放在按钮里了,点了,没有用啊,怎么才能让我看到效果呢?
真相重于对错 2010-06-29
  • 打赏
  • 举报
回复
windows 系统规定

通过GetDc(NULL) 获取的是桌面的dc , intptr.zero 相当于NULL
兔子-顾问 2010-06-29
  • 打赏
  • 举报
回复
的确可以。这个写法太棒了。楼主。

using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
g.DrawLine(Pens.Black, 0, 0, 500, 800);
}

你吧这个放你某个按钮里,点一下就看到效果了。
就是你这个Graphics对象绘制不受窗体的边框限制,整个屏幕都可以绘制,坐标系也是屏幕坐标系。(0,0)是显示器的左上角。
兔子-顾问 2010-06-29
  • 打赏
  • 举报
回复
这样可以获得桌面的Graphic对象?如此简单的写法。真不错。
  • 打赏
  • 举报
回复
有没有人知道啊?
  • 打赏
  • 举报
回复
IntPtr.Zero 到底是什么意思?
  • 打赏
  • 举报
回复
能再多说明一点么?MSDN 中 解释:IntPtr.Zero 字段 一个只读字段,代表已初始化为零的指针或句柄。
那为什么 Graphics.FromHwnd(IntPtr.Zero); 就是得到桌面的DC呢?
真相重于对错 2010-06-29
  • 打赏
  • 举报
回复
获取桌面得dc

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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