StretchDIBits显示位图

xue040506 2010-03-17 11:05:26
想在一个LABLE中显示出图片,不知是否可行,StretchDIBits需要的是DC的指针,怎么通过LABLE取得对应的DC指针。
...全文
191 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xue040506 2010-03-17
  • 打赏
  • 举报
回复
或者换个控件也行,只要能正常显示图像,不被冲掉就行
xue040506 2010-03-17
  • 打赏
  • 举报
回复

CDC *pDC;
pDC = GetDlgItem(IDC_STATIC_VIEW)->GetWindowDC();
int iRes = StretchDIBits(pDC->m_hDC,0,0,176,144,0,0,176,144,
lpImage, &BmpInfo, DIB_RGB_COLORS,SRCCOPY);

lpImage是RGB数据BUFFER,一张176*144的位图数据,
把这段代码写进OnPaint()里面效果也是一样。

应该没有找错DC,要不怎么会显示一下图片呢,现在的问题是显示一下就又变成空了,给LABEL设了个初值后,显示完图片就又显示成初值了,
zhou1xp 2010-03-17
  • 打赏
  • 举报
回复
我的意思是得到这个指针,然后找到它的m_DC成员变量,把代码贴出来看下,应该是你的DC找错了
kier2 2010-03-17
  • 打赏
  • 举报
回复
把你OnPaint里的关键代码贴出来看看
xue040506 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kier2 的回复:]
你在OnPaint里StretchDIBits,看行不行
[/Quote]
不行,也是闪一下就变成空白了,这是为什么呀
kier2 2010-03-17
  • 打赏
  • 举报
回复
你在OnPaint里StretchDIBits,看行不行
xue040506 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhou1xp 的回复:]
getdlgitem(),然后重这个指针中的到它的DC成员变量
[/Quote]

谢谢你,GetDlgItem(IDC_STATIC_VIEW)->GetWindowDC()这样就可以得到了,但是调用StretchDIBits填充后,没有反应,然后我调用OnPain()后显示一下图片,就又变成空白,这是为什么,怎么才能让它一直显示,调用UpdateData也不行,和OnPain的效果一样
zhou1xp 2010-03-17
  • 打赏
  • 举报
回复
getdlgitem(),然后重这个指针中的到它的DC成员变量
xue040506 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zhou1xp 的回复:]
楼主,你要去看下如何做双缓冲,你这个函数根本就没用对
[/Quote]
嗯,我后来试了这种方法就好了,CPaintDC viewdc(GetDlgItem(IDC_STATIC_VIEW));
不过,OnPaint()有时候触发不了,用老鱼兄的OnCtrlColor()可以实现,发现这个函数会调用很多次,先这么用着,一会再结贴,看有更好的不,谢谢大家,
zhou1xp 2010-03-17
  • 打赏
  • 举报
回复
楼主,你要去看下如何做双缓冲,你这个函数根本就没用对
会飞的老鱼 2010-03-17
  • 打赏
  • 举报
回复
重载OnCtrlColor()

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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