首页
社区
课程
招聘
[求助]求一个用C(或C++)和GDI+写的屏幕截图的程序,或者给截图的关键代码也行啊??
发表于: 2009-9-3 15:04 7057

[求助]求一个用C(或C++)和GDI+写的屏幕截图的程序,或者给截图的关键代码也行啊??

2009-9-3 15:04
7057
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 179
活跃值: (26)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
<<远程控制编程技术>>这本书中有相关源码,楼主可以搜索下。
2009-9-3 16:10
0
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
3
Bitblt
2009-9-3 17:11
0
雪    币: 203
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
先创建一个内存DC:
HDC hMemDc = CreateCompatibleDC(hDc);
然后创建一个兼容的bitmap
HBITMAP hBmp = CreateCompatibleBitmap(hDc,SCREEN_WIDTH, SCREEN_HEIGHT);
SelectObject(hMemDc, hBmp);
然后得到桌面的DC:
hDesktopDC = GetDC(GetDesktopWindow());
然后拷到内存DC中
BitBltDC(hMemDc, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, hDesktopDc, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, SRCCOPY);
然后你就可以用hMemDc去显示或者保存为文件了。(SCREEN_WIDTH,SCREEN_HEIGHT使屏幕分辨率,可以用GetDeviceCaps动态得到)
2009-9-3 17:43
0
雪    币: 225
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
晕死了!!!
用GDI+主要是为了可以保存成jpg格式的图象,用GDI来实现那就复杂了啊
2009-9-3 21:24
0
雪    币: 170
活跃值: (45)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
楼主别晕了,用GDI的hDC可以很容易构造一个Graphics对象,通常截图的实现都是用GDI做的,GDI+反而没有GDI方便,如果是对一个窗口截图,直接调用PrintWindow这个API是最方便的。
2009-9-4 23:49
0
雪    币: 135
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你发printscreen不就得了 就在剪贴板里了 然后再从剪贴板复制成bmp文件不就行了
2009-9-10 17:07
0
雪    币: 146
活跃值: (33)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
不要动不动就是要代码要程序
       我做过一个,和QQ的截图差不多,只是没有些花里胡哨的界面
     对桌面DC进行一个维护,bitblt进一个兼容位图里,这个当做原始的用
然后再创建一个内存兼容DC,这个主要是为了双缓存避免频繁绘图时闪烁(当你选定区域时要频繁绘制选定区域的边框)
最后就直接把第2个内存DC里画好的直接bitblt到你想要显示的窗口DC里
至于要截取的区域我是从第一个DC中bitblt出,因为这个才是原始的数据
      以上是个人方法,效果还不错,仅供参考,大牛就别喷我了
2009-9-15 19:28
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
123456
上传的附件:
2009-9-15 19:50
0
游客
登录 | 注册 方可回帖
返回
//