首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

VC/MFC怎样取得剪贴板下的图像并显示出来

2012-09-09 
VC/MFC怎样取得剪贴板上的图像并显示出来VC/MFC怎样取得剪贴板上的图像并显示出来准备做个操作剪贴板的桌

VC/MFC怎样取得剪贴板上的图像并显示出来
VC/MFC怎样取得剪贴板上的图像并显示出来

准备做个操作剪贴板的桌面辅助工具,今晚先完成第一步工作,如题。

?

直接贴代码,代码在 VC6 中通过。

?

?

// 下面的代码部分的参考了下面的网址// http://hi.baidu.com/pivotman/blog/item/b7ce681bdc0e74c6a6866933.htmlif (OpenClipboard()){// Get   the   clipboard   data   HBITMAP   handle   =   (HBITMAP) GetClipboardData(CF_BITMAP);if (handle != NULL){CBitmap* cbm   =   CBitmap::FromHandle(handle);  if (cbm != NULL){// 注意:GetBitmapDimension函数不能得到图象的宽度和高度// 这个函数名太具有迷惑性了//CSize sz = bm->GetBitmapDimension();// sz.cx == 0, sz.cy == 0// 下面的两个网址提供了取得CBitmap的宽度和高度的方法// http://dreammengjian.blog.hexun.com/4095740_d.html// http://support.microsoft.com/kb/88555/zh-twBITMAP bm;cbm->GetObject(sizeof(BITMAP), &bm);CSize sz(bm.bmWidth, bm.bmHeight);// for debug//char tmpbuf[256];//sprintf(tmpbuf, "cx=%d cy=%d\n", sz.cx, sz.cy);//MessageBox(tmpbuf);// 下面的代码将剪贴板上的图象显示在窗口上CClientDC   cdc(this);   CDC   dc;   dc.CreateCompatibleDC(&cdc);   dc.SelectObject(cbm);  //cdc.BitBlt(0,0,200,200,&dc,0,0,SRCCOPY);cdc.BitBlt(0, 0, sz.cx, sz.cy, &dc, 0, 0, SRCCOPY);  }else{MessageBox("CBitmap::FromHandle failed");}}else{MessageBox("GetClipboardData CF_BITMAP failed");}CloseClipboard();   }else{MessageBox("OpenClipboard failed");}

?

下一阶段的尝试:将 CBitmap/BITMAP 保存成为 jpg 或 gif 图片文件。

?

?

热点排行