pDC->CreateCompatibleDC(0) 出错

清水迎朝阳
博客专家认证
2009-10-26 05:06:38

file.Open(ImageFile,CFile::modeRead);
fileSize=(DWORD)file.GetLength();

BYTE *buf=new BYTE[fileSize];


file.Read(buf,fileSize);
file.Close();

HBITMAP bmp;
BITMAPFILEHEADER *pbmfh;

pbmfh=(BITMAPFILEHEADER*)buf;
bmp=CreateDIBitmap(pDC->GetSafeHdc(),
(BITMAPINFOHEADER*)(pbmfh+1),
CBM_INIT,
(BYTE*)pbmfh+pbmfh->bfOffBits,
(BITMAPINFO*)(pbmfh+1),
DIB_RGB_COLORS);
BITMAPINFOHEADER *pbminfohead=(BITMAPINFOHEADER*)(pbmfh+1);
pDC->CreateCompatibleDC(0); //运行到这里出错 提示: user breakpoint called form code at 0x7c92120e

pDC->SelectObject(bmp);

pDC->BitBlt(0,0,pbminfohead->biWidth,pbminfohead->biHeight,pDC,0,0,SRCCOPY);


请问 :为什么出错
如何改正呢
有没有更好的读取图像并显示的方法
...全文
119 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
清水迎朝阳 2009-10-26
  • 打赏
  • 举报
回复
这样改的 话 编译是通过了

但是 图像显示不出来 是为什么呢
jeff_5388 2009-10-26
  • 打赏
  • 举报
回复
不知道你的pDC从哪儿来的。
估计的 pDC 的值为空。
feilinhe 2009-10-26
  • 打赏
  • 举报
回复
大概是这样的:
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);//创建与对话框dc兼容的内存dc
dcMem.SelectObject(bmp);
pDC->BitBlt(0,0,pbminfohead->biWidth,pbminfohead->biHeight,&dcMem,0,0,SRCCOPY);

15,978

社区成员

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

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