CDC* pScreenDc = CDC::FromHandle(::GetDC(NULL));<span style="white-space:pre"> </span>//屏幕DC
CDC memDc;<span style="white-space:pre"> </span>// 内存DC
CBitmap memBmp;
CBitmap* pOldBmp;
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);
memDc.CreateCompatibleDC(pScreenDc);
memBmp.CreateCompatibleBitmap(pScreenDc, cx, cy);
pOldBmp = memDc.SelectObject(&memBmp);
memDc.BitBlt(0, 0, cx, cy, pScreenDc, 0, 0, SRCCOPY);
//复制到剪切板
OpenClipboard();
EmptyClipboard();
SetClipboardData(CF_BITMAP, memBmp.Detach());
CloseClipboard();
// 显示到当前界面
CClientDC clientDc(this);
CRect rcClient;
GetClientRect(rcClient);
clientDc.StretchBlt(0, 0, rcClient.Width(), rcClient.Height(), &memDc, 0, 0, cx, cy, SRCCOPY);
memDc.SelectObject(pOldBmp);
memDc.DeleteDC();
memBmp.DeleteObject();MFC截屏、绘制并复制到剪切板
最新推荐文章于 2023-05-27 16:33:39 发布
本教程介绍了一个简单的程序来实现屏幕的全屏截图,并将截图复制到剪切板,同时展示如何将截图显示在当前界面上。程序使用了Windows API函数如CDC::FromHandle、CreateCompatibleDC等来创建设备上下文(DC)和位图。
731

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



