
这个好像没有办法,我试过在暴风影音最前段显示的时候,用alt+print截取一个被遮住的窗口,前面的窗口也会被截取下来。对于被遮住的窗口部分会被裁减掉,所以基本在被遮住的情况下应该都不能截取。
或者你可以让你的程序在最前端显示在截取。
得到屏幕矩形区域:
CDC
pDC=::GetDC(NULL);
CDC
mdc;//内存DC
int
cx=GetSystemMetrics(SM_CXSCREEN)
int
cy=GetSystemMetrics(SM_CYSCREEN)
mdcBitBlt(0,0,cx,cy,pDC,0,0,SRCCOPY);
这样屏幕矩形区域就载入到内存DC中
2得到bmp长和宽:
CBitmap
Bitmap;
BitmapLoadBitmap(IDB_BITMAP1);
BITMAP
bmp;
BitmapGetBitmap(&bmp);
int
cxBitmap
=
bmpbmWidth;
int
cyBitmap
=
bmpbmHeight;
3得到每一点的颜色值;
先将位图载入CDC:
CBitmap
Bitmap;
BitmapLoadBitmap(IDB_BITMAP1);
pDC->SelectObject(&Bitmap);
COLORREF
cr;
cr=pDC->GetPixel(x,y);//x,y为像素点坐标
使用GetSystemMetrics获取显示器屏幕大小,然后调整
设置窗口的大小根据屏幕大小来按比例设置,比如屏幕宽的80%,高的60%来设置你窗口大小等
获取屏幕坐标:
int x = GetSystemMetrics(SM_CXSCREEN);
int y = GetSystemMetrics(SM_CYSCREEN);
处理WM_SIZE,将大小算好改变然后再重新显示,大致思路就这样!您试试看!
以上就是关于vc mfc 如何获取当前程序的窗口并保存为图片全部的内容,包括:vc mfc 如何获取当前程序的窗口并保存为图片、关于vc 将屏幕和bmp图载入到内存中的问题、如何在VC应用程序中全屏显示视窗口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)