剪贴板里的JPG图片,代码无法保存GetClipboardData(CF_BITMAP)返回NULL,但是却可以右键粘贴,该怎么处理
剪贴板里的JPG图片,代码无法保存GetClipboardData(CF_BITMAP)返回NULL,但是却可以右键粘贴
剪贴板里的JPG图片,代码无法保存GetClipboardData(CF_BITMAP)返回NULL,但是却可以右键粘贴
------解决方案--------------------
我想这里面不一定保存有实质的图片,只做了个标记而已,真正内存拷贝动作可能发生在 粘贴 动作时。
------解决方案--------------------
这是它的声明。
楼主可以按照下面的代码试试:
------解决方案--------------------
GetLastError返回值是多少?
剪贴板里的JPG图片,代码无法保存GetClipboardData(CF_BITMAP)返回NULL,但是却可以右键粘贴
if (::OpenClipboard(NULL))
{
HBITMAP h = (HBITMAP)GetClipboardData(CF_BITMAP); //这一句返回NULL
int e=GetLastError(); //GetLastError()返回0
}
------解决方案--------------------
我想这里面不一定保存有实质的图片,只做了个标记而已,真正内存拷贝动作可能发生在 粘贴 动作时。
------解决方案--------------------
WINUSERAPI HANDLE WINAPI GetClipboardData(__in UINT uFormat);
这是它的声明。
楼主可以按照下面的代码试试:
if(!IsClipboardFormatAvailable(CF_BITMAP))
{
TRACE("IsClipboardFormatAvailable() failed!\n");
return ;
}
if(!OpenClipboard())
{
TRACE("OpenClipboard() failed!\n");
return ;
}
HANDLE hMem=GetClipboardData(CF_BITMAP);
ASSERT(hMem != NULL);
HBITMAP hBMP=(HBITMAP)GlobalLock(hMem);
//Do something here using hBMP
GlobalUnlock(hMem);
//Free the memory
CloseClipboard();
------解决方案--------------------
GetLastError返回值是多少?