为什么StretchDIBits不能显示图片?大家帮帮我,很急,多谢!

5311 2007-06-10 02:28:49
m_pBuf 为数据缓存

//CCCDDemoView.h中定义
BITMAPINFO m_bitmapinfo;
BITMAPINFOHEADER m_bitmaphander;
BYTE * m_pBuf;


CCCDDemoView::CCCDDemoView()
{
// TODO: add construction code here
m_pBuf = NULL;
m_bitmaphander.biSize = sizeof(BITMAPINFOHEADER);
m_bitmaphander.biWidth = 256;
m_bitmaphander.biHeight = 256;
m_bitmaphander.biPlanes = 1;
m_bitmaphander.biBitCount = 1;
m_bitmaphander.biCompression = BI_RGB;
m_bitmaphander.biSizeImage = 0;
m_bitmaphander.biXPelsPerMeter = 0;
m_bitmaphander.biYPelsPerMeter = 0;
m_bitmaphander.biClrUsed =0;
m_bitmaphander.biClrImportant = 0;
m_bitmapinfo.bmiHeader = m_bitmaphander;
}

void CCCDDemoView::OnDraw(CDC* pDC)
{
CCCDDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
//TODO
StretchDIBits(pDC->m_hDC,
0,
0,
256,
256,
0,
0,
256,
256,
m_pBuf,
&m_bitmapinfo,
DIB_RGB_COLORS,
SRCCOPY);

// TODO: add draw code for native data here
}

在LButtonDown函数中会得到m_pBuf,然后调用Invalidate显示,但是图片显示不出来,大家帮忙看看怎么回事,多谢!
...全文
244 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
5311 2007-06-11
楼上的兄弟,位图是黑白两色!
回复
天鹅梦 2007-06-11
m_bitmaphander.biBitCount = 1;这句你检查一下,你的数据是多少色的,黑白两色,256色,还是真彩24位,要显示位图数据,针对数据,位图头结构设置是主要问题
回复
5311 2007-06-11
帮帮忙吧,兄弟们!
回复
相关推荐
发帖
图形处理/算法
创建于2007-09-28

1.9w+

社区成员

VC/MFC 图形处理/算法
申请成为版主
帖子事件
创建了帖子
2007-06-10 02:28
社区公告
暂无公告