能力值:
( LV7,RANK:100 )
|
-
-
2 楼
<<远程控制编程技术>>这本书中有相关源码,楼主可以搜索下。
|
能力值:
( LV12,RANK:750 )
|
-
-
3 楼
Bitblt
|
能力值:
( 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动态得到)
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
晕死了!!!
用GDI+主要是为了可以保存成jpg格式的图象,用GDI来实现那就复杂了啊
|
能力值:
( LV6,RANK:90 )
|
-
-
6 楼
楼主别晕了,用GDI的hDC可以很容易构造一个Graphics对象,通常截图的实现都是用GDI做的,GDI+反而没有GDI方便,如果是对一个窗口截图,直接调用PrintWindow这个API是最方便的。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
你发printscreen不就得了 就在剪贴板里了 然后再从剪贴板复制成bmp文件不就行了
|
能力值:
( LV5,RANK:60 )
|
-
-
8 楼
不要动不动就是要代码要程序
我做过一个,和QQ的截图差不多,只是没有些花里胡哨的界面
对桌面DC进行一个维护,bitblt进一个兼容位图里,这个当做原始的用
然后再创建一个内存兼容DC,这个主要是为了双缓存避免频繁绘图时闪烁(当你选定区域时要频繁绘制选定区域的边框)
最后就直接把第2个内存DC里画好的直接bitblt到你想要显示的窗口DC里
至于要截取的区域我是从第一个DC中bitblt出,因为这个才是原始的数据
以上是个人方法,效果还不错,仅供参考,大牛就别喷我了
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
|
|
|