bitmap文件显示?

fu313235770 2012-09-13 06:38:32
请教各位一下,现在本人想通过文件对话框选择一个位图文件,然后在单文档程序中显示出图像,应该怎么办?
...全文
66 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2012-09-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

2楼 你好
看了你的程序 觉得很有理,但是我载入单文档程序中 还是没有显示出图片,是不是还有什么步骤少了呢
[/Quote]
自己在View类的OnDraw函数中绘制图形~
Gloveing 2012-09-13
  • 打赏
  • 举报
回复
把上面的主要代码放到OnPaint中去调用
fu313235770 2012-09-13
  • 打赏
  • 举报
回复
2楼 你好
看了你的程序 觉得很有理,但是我载入单文档程序中 还是没有显示出图片,是不是还有什么步骤少了呢
Gloveing 2012-09-13
  • 打赏
  • 举报
回复
BOOL CMyView::ShowBitmap(CString str)
{
CBitmap *bitmap;
BITMAP pBmpInfo;

HBITMAP bmp =(HBITMAP)::LoadImage(AfxGetInstanceHandle(),str,IMAGE_BITMAP,0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE);

if(bmp==NULL)
{
MessageBox("LoadImage Error !");
return FALSE;
}

bitmap=CBitmap::FromHandle(bmp);
bitmap->GetBitmap(&pBmpInfo);
CDC mem;
CDC *pDC=GetDC();
if(!mem.CreateCompatibleDC(pDC))
{
MessageBox("CreateCompatibleDC Error !");
return FALSE;
}

if(! mem.SelectObject(bitmap))
{
MessageBox("SelectObject Error !");
return FALSE;
}

CRect rect;
GetClientRect(&rect);
// int err = pDC->BitBlt(0,0,pBmpInfo.bmWidth,pBmpInfo.bmHeight,&mem,0,0,SRCCOPY);
// int err = pDC->StretchBlt(0,0,pBmpInfo.bmWidth,pBmpInfo.bmHeight,&mem,0,0,rect.Width(),rect.Height(),SRCCOPY);
int err = pDC->StretchBlt(0,0,pBmpInfo.bmWidth,pBmpInfo.bmHeight,&mem,0,0,pBmpInfo.bmWidth,pBmpInfo.bmHeight,SRCCOPY);
if(err==0)
{
MessageBox("BitBlt Error !");
return FALSE;
}

pDC->DeleteDC();
mem.DeleteDC();
return TRUE;

}

16,472

社区成员

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

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

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