能力值:
( LV2,RANK:10 )
|
-
-
2 楼
invoke CreateCompatibleDC,0
(换成当前程序窗口后,当前窗口是570*670,居然保存下来后变成全黑了?)
|
能力值:
( LV12,RANK:730 )
|
-
-
3 楼
HDC hdc,hmemdc;
HBITMAP hmembmp,hbmp;
hdc=GetDC(GetDesktopWindow());
hmemdc=CreateCompatibleDC(hdc); //创建兼容设备句柄
hmembmp=CreateCompatibleBitmap(hdc,800,600); //从hdc创建兼容位图
hbmp=(HBITMAP)SelectObject(hmemdc,hmembmp); //给兼容DC选择兼容位图
BitBlt(hmemdc,0,0,800,600,hdc,0,0,SRCCOPY); //现在画到兼容位图,用StretchBlt也行
DeleteDC(hmemdc);
DeleteDC(hdc);
GetBitmapBits(hmembmp,800*600*3,pt); //把兼容位图的图像数据保存到BYTE *pt指向的一块内存。再做位图头就可以保存成bmp文件。
注:不能用来保存DirectShow的图像。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
保存位图不得大于当前屏幕尺寸,想保存大尺寸可以自己分段构造,通过系统放大可以放大,但保存位图时还是受到屏幕尺寸限制。
版主,此帖可删了。
|
|
|