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截屏、绘制并复制到剪切板
最新推荐文章于 2022-11-08 12:22:24 发布