我遇到了从 Windows 剪贴板传送位图的问题。位图通过 Printscreen 按钮到达这里。
这是我的代码基于:VC++ win32 API 编程:如何从剪贴板中获取图像并将其显示在 winodws 中?
bool SetBackgroundImage(HWND hwnd) {
GetPrintScreen(hwnd));
OpenClipboard(NULL);
HBITMAP Image = (HBITMAP)GetClipboardData(CF_BITMAP);
PAINTSTRUCT ps;
HDC wdc = BeginPaint(hwnd,&ps);
HDC mdc = CreateCompatibleDC(wdc);
SelectObject(mdc,Image);
BitBlt(wdc,0,0,1000,700,mdc,10,10,SRCCOPY);
DeleteDC(mdc);
EndPaint(hwnd,&ps);
CloseClipboard();
return true;
}
(我已经放弃了整个错误处理等)我 99% 确定剪贴板中有一个图像(否则应用程序会崩溃),当我在(ex)paint 中检查它时,也可以粘贴它。
我错过了什么?