剪切板上有一幅BMP格式的图像,获得图像的数据区域,并显示该幅图像!希望有做过类似方面的不吝赐教,拷些代码也行!谢谢各位大侠了!
解决方案 »
- MFC函数的参数
- 求类似QQ或windows开始菜单源码(最上面带一个Title的可以显示头像家字符串),谢谢啊
- 有谁知道WMO的GRIB数据格式是啥样的?
- 关于动态设置文本.
- 高手求救,关于DIALOG中listview显示不出来的问题。(环境vc2005)
- SendMessage()向主窗体发送自定义消息的时候,怎么获取主窗体的句柄?(在线)
- 使用ADO 可否用PutCollect设置字段值为空
- 问个DLL静态链接和动态链接的菜鸟问题!
- listctrl的问题
- 在状态条中创建进度条
- 欢迎免费体验多功能视频会议系统
- 状态栏重绘后,Invalidate()刷新状态栏,时不时状态栏出现闪烁现象,怎样去掉闪烁现象呢?高手进啊
这个帖子中有详细的剪贴位图的方法.
三、位图的操作位图的操作稍微复杂一点,下面这个例子显示了如何在剪贴板保存位图:if(OpenClipboard()){EmptyClipboard();CBitmap * junk = new CBitmap();CClientDC cdc(this);CDC dc;dc.CreateCompatibleDC(&cdc);CRect client(0,0,200,200);junk->CreateCompatibleBitmap(&cdc,client.Width(),client.Height());dc.SelectObject(junk);DrawImage(&dc,CString("Bitmap"));//复制数据到剪贴板SetClipboardData(CF_BITMAP,junk->m_hObject);CloseClipboard();delete junk;}下面的代码显示了如何从剪贴板上获得位图数据:if(OpenClipboard()){//获得剪贴板数据HBITMAP handle = (HBITMAP)GetClipboardData(CF_BITMAP);CBitmap * bm = CBitmap::FromHandle(handle);CClientDC cdc(this);CDC dc;dc.CreateCompatibleDC(&cdc);dc.SelectObject(bm);cdc.BitBlt(0,0,200,200,&dc,0,0,SRCCOPY);CloseClipboard();
//获取剪切板中的数据保存到HBITMAP对象中
HBITMAP hBitmap = NULL;
if (::OpenClipboard(this->m_hWnd))
{
if (::IsClipboardFormatAvailable(CF_BITMAP))
{
hBitmap = (HBITMAP)::GetClipboardData(CF_BITMAP);
}
else
return FALSE;
}
::CloseClipboard();//显示到当前的视图中
CBitmap t_bitMap;
t_bitMap.Attach(hBitmap);
CDC compatibledc;
CRect rect;
CDC * pDC;
pDC = GetDC();
compatibledc.CreateCompatibleDC(pDC);
compatibledc.SelectObject(&t_bitMap);
GetClientRect(&rect);
BITMAP bmp;
t_bitMap.GetBitmap(&bmp);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),
&compatibledc,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
ReleaseDC(pDC);