为什么我这样做复制不了位图呢?

zmx0506 2007-01-02 05:47:19

我在VC中用下面的代码复制一副位图,运行正常,但是怎么在WORD上粘贴没显示啊?
m_WaveUIBmpCtrl是一个Picture控件的变量,该控件上显示着一副位图,从文件导入。
HBITMAP hBitmap = NULL;

BeginWaitCursor();

hBitmap = m_WaveUIBmpCtrl.GetBitmap();
VERIFY(hBitmap);

VERIFY(OpenClipboard());
VERIFY(EmptyClipboard());
VERIFY(SetClipboardData (CF_BITMAP, hBitmap ));
VERIFY(CloseClipboard ());

EndWaitCursor();

请问复制位图该怎么做啊???
...全文
286 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmx0506 2007-01-04
  • 打赏
  • 举报
回复
up
jackwuwei 2007-01-03
  • 打赏
  • 举报
回复
把HBITMAP转换成DIB,然后使用CG_DIB就可以了,参考http://www.codeproject.com/clipboard/dib2clipboard.asp
zmx0506 2007-01-03
  • 打赏
  • 举报
回复
顶起来
zmx0506 2007-01-03
  • 打赏
  • 举报
回复
有人做过么?
帮个忙回答一下啊
zmx0506 2007-01-03
  • 打赏
  • 举报
回复
再问个问题,

我从文件导入一张位图到Picture控件中显示,我的要求是:
我的控件可以改变大小,我的位图随着控件的大小改变而改变(始终完全适应控件大小)
请问我该怎么导入显示啊?????

我的代码是这样的,可是问题是:导入时是大小一致,可控件一旦改变了大小,位图就和控件不一致了。
CRect rc;
HBITMAP hBitmap = NULL;
GetDlgItem(IDC_WAVE_UI_BMP)->GetWindowRect(&rc);
VERIFY(strcmp(G_OpenFileName, ""));
hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),G_OpenFileName,
IMAGE_BITMAP,rc.Width(),rc.Height(), LR_CREATEDIBSECTION|LR_LOADFROMFILE);
m_WaveUIBmpCtrl.ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
m_WaveUIBmpCtrl.SetBitmap(hBitmap);
帮我看看啊 ,大侠们!
zmx0506 2007-01-03
  • 打赏
  • 举报
回复
楼上的,你好
谢谢你的回帖。

“复制位图”这个问题,我在网上找了资料,最后我写成这样了,你帮我看看,可以更优化么?
CBitmap bitmap;
CClientDC dc(GetDlgItem(IDC_WAVE_UI_BMP));
CDC memDC;
CRect rect(0, 0, 0, 0);
VERIFY(memDC.CreateCompatibleDC(&dc));
GetDlgItem(IDC_WAVE_UI_BMP)->GetWindowRect(rect);

VERIFY(bitmap.CreateCompatibleBitmap(&dc, rect.Width(),rect.Height()));
CBitmap* pOldBitmap = memDC.SelectObject(&bitmap);
VERIFY(memDC.BitBlt(0, 0, rect.Width(),rect.Height(), &dc, 0, 0, SRCCOPY));

VERIFY(::OpenClipboard(NULL));
VERIFY(::EmptyClipboard());
VERIFY(SetClipboardData (CF_BITMAP, bitmap.GetSafeHandle()));
::CloseClipboard() ;

memDC.SelectObject(pOldBitmap);
bitmap.Detach();
位图是显示在DI为“IDC_WAVE_UI_BMP”的Picture控件上的。
youngwolf 2007-01-02
  • 打赏
  • 举报
回复
如果能在画图板中粘贴的话,那可能是因为WORD用的是自定义的剪切板格式。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧