我通过GetClipboardData(CF_DIB)获得了剪贴板上的位图结构BITMAPINFO,请问我要如何才能将这个位图通过StretchDIBits显示在指定的DC中?已知剪贴板中确实存在CF_DIB的位图且读出正确最好有部分源程序万分感谢
解决方案 »
- 怎么Hook一个进程的API调用,就是拦截特定程序的API
- 关于界面分割
- 如果获得箭头键消息响应?
- 求助一个关于分割视图的实现思想
- 文件系统过滤驱动,如何安全解决IRP_MJ_CREATE重入问题?
- :) 各位高手,请问我的自已画的小控件(不是用ATL),当用鼠标拖动时产生的问题?
- 如何实时得到变量的内容的改变(VC++,HOOK,信号量相关)
- 请问
- error C2143: syntax error : missing ';' before 'public'
- 关于Access数据库得到问题!!!!急!!!急!!!急!!!
- 出现“debug\myapp.pch is not precompiled header file create with this compiler”,什么意思?
- 视频压缩时ICOpen的用法
CFileStatus fstatus;
CFile file;
LONG cb;
HGLOBAL hGlobal;
if(file.Open("c:\\start2.bmp",CFile::modeRead)&&
file.GetStatus("c:\\start2.bmp",fstatus)&&((cb =fstatus.m_size)!= -1))
{
hGlobal = GlobalAlloc(GPTR,cb);
file.Seek(sizeof(BITMAPFILEHEADER), CFile::begin );
file.ReadHuge(hGlobal,cb);
file.Close();
}
if (hGlobal == NULL)
return;
OpenClipboard();
EmptyClipboard(); HANDLE h = ::SetClipboardData( CF_DIB, (BITMAPINFO *)hGlobal) ;
HANDLE hdib = ::GetClipboardData(CF_DIB);
if (hdib == NULL)
return;
BITMAPINFOHEADER *pbih = (BITMAPINFOHEADER *)hdib;
CDC *pDC = GetDC();
::StretchDIBits(pDC->m_hDC,0,0,pbih->biWidth,pbih->biHeight,
0,0,pbih->biWidth,pbih->biHeight,
(BYTE *)pbih+sizeof(BITMAPINFOHEADER),(BITMAPINFO *)pbih,DIB_RGB_COLORS,SRCCOPY);
ReleaseDC(pDC);
CloseClipboard();
GlobalFree(hGlobal);