源代码:http://download.csdn.net/detail/nuptboyzhb/3961677
Ø 添加全屏截图菜单项,菜单项的属性如下;

Ø 为该菜单项建立类向导。
编辑消息处理函数如下
voidCCVMFCView::OnPrintscreen()
{
CRect rect;
//HBITMAP hMap;
rect.left = 0;
rect.top = 0;
rect.right =GetSystemMetrics(SM_CXSCREEN);
rect.bottom =GetSystemMetrics(SM_CYSCREEN);
//-------------------------------------------
HDC hScrDC, hMemDC;
// 屏幕和内存设备描述表
HBITMAP hBitmap,hOldBitmap;
// 位图句柄
int nX, nY, nX2, nY2;
// 选定区域坐标
int nWidth, nHeight;
// 位图宽度和高度
int xScrn, yScrn;
// 屏幕分辨率
// 确保选定区域不为空矩形
//为屏幕创建设备描述表
hScrDC = CreateDC("DISPLAY",NULL, NULL, NULL);
//为屏幕设备描述表创建兼容的内存设备描述表
hMemDC = CreateCompatibleDC(hScrDC);
// 获得选定区域坐标
nX = rect.left;
nY = rect.top;
nX2 =rect.right;
nY2 =rect.bottom;
// 获得屏幕分辨率
xScrn = GetDeviceCaps(hScrDC, HORZRES);
yScrn = GetDeviceCaps(hScrDC, VERTRES);
//确保选定区域是可见的
if (nX < 0) nX = 0;
if (nY < 0) nY = 0;
if (nX2 > xScrn) nX2 = xScrn;
if (nY2 > yScrn) nY2 = yScrn;
nWidth = nX2 - nX;
nHeight = nY2 - nY;
// 创建一个与屏幕设备描述表兼容的位图
hBitmap=CreateCompatibleBitmap(hScrDC,nWidth,nHeight);
// 把新位图选到内存设备描述表中
hOldBitmap=(HBITMAP)SelectObject(hMemDC,hBitmap);
// 把屏幕设备描述表拷贝到内存设备描述表中

本文介绍了如何在MFC应用程序中添加全屏截图功能,并将截图保存为BMP图像。通过创建设备描述表,进行位图操作,最后实现快捷键(ID_PRINTSCREEN)支持。
最低0.47元/天 解锁文章
4580

被折叠的 条评论
为什么被折叠?



