VC打开bmp图片

qq_heilongjiang 2012-08-01 03:57:03
基于对话框的程序,在picture控件内显示图片,PaintImages函数编写图片显示代码
图片能够显示出来,闪一下,就什么也不显示了
...全文
182 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_heilongjiang 2012-09-27
  • 打赏
  • 举报
回复
是我的对话框皮肤程序,把图片的显示覆盖了
wltg2001 2012-08-04
  • 打赏
  • 举报
回复
既然是BMP文件,既然是显示在picture控件中的,那么用SetBitmap不是更方便?
qlizhang 2012-08-04
  • 打赏
  • 举报
回复

HBITMAP hBitmap1 = (HBITMAP) LoadImage(NULL, _T("map1.bmp"), IMAGE_BITMAP,
0, 0, LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
m_map.SetBitmap(hBitmap1);
牛虻&专家 2012-08-01
  • 打赏
  • 举报
回复
不清楚
liuli7786 2012-08-01
  • 打赏
  • 举报
回复
pBmi你是在哪定义的,在哪赋的值?把pBmi设为成员变量 或 全局变量 试一下。
MFCJCK 2012-08-01
  • 打赏
  • 举报
回复
用强大地 GDI+
qq_heilongjiang 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
引用 2 楼 的回复:
引用 1 楼 的回复:
用GDI绘图

显示的代码是这样的
memdc.CreateCompatibleDC(pDC);
SetDIBitsToDevice(memdc.m_hDC,0,0,wid,hei,0,0,0,hei,pDib,pBmi,DIB_RGB_COLORS);
帮忙看一下,显示出来图片闪了一下,就不显示了,是怎么回事呢

你把这段代码放到……
[/Quote]

刚刚表达的有误,就是放在了OnPaint函数中的。断点调试的时候,程序就一直在调用OnPaint函数,出不去了,把断点删了可以显示对话框了,然后图片闪一下就没了
liuli7786 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
引用 1 楼 的回复:
用GDI绘图

显示的代码是这样的
memdc.CreateCompatibleDC(pDC);
SetDIBitsToDevice(memdc.m_hDC,0,0,wid,hei,0,0,0,hei,pDib,pBmi,DIB_RGB_COLORS);
帮忙看一下,显示出来图片闪了一下,就不显示了,是怎么回事呢
[/Quote]
你把这段代码放到OnPaint函数中,再试一下。
傻X 2012-08-01
  • 打赏
  • 举报
回复
显示代码没上全,应该是被更新掉了。触发了重新OnDraw。OnDraw里面又没内容。所以就闪了一下
qq_heilongjiang 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
单步调试看下。
大概是流程的问题

你是显示出来后又用别的东西把图片更新掉了吧。
[/Quote]
没有添加PaintImages函数执行之后的任何代码,单步调试的时候PaintImages之后显示图像,在没有任何代码了啊,不会存在更新啊
geleg 2012-08-01
  • 打赏
  • 举报
回复
单步调试看下。
大概是流程的问题

你是显示出来后又用别的东西把图片更新掉了吧。
qq_heilongjiang 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
用GDI绘图
[/Quote]
显示的代码是这样的
memdc.CreateCompatibleDC(pDC);
SetDIBitsToDevice(memdc.m_hDC,0,0,wid,hei,0,0,0,hei,pDib,pBmi,DIB_RGB_COLORS);
帮忙看一下,显示出来图片闪了一下,就不显示了,是怎么回事呢
liuli7786 2012-08-01
  • 打赏
  • 举报
回复
用GDI绘图

19,468

社区成员

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

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