多文档工程中view界面中加载jpg图片

MainFrm.h文件中添加头文件#include "atlimage.h"

view.cpp文件中添加头文件#include "MainFrm.h"

添加图片对象CImage image;//图片对象


View.cpp文件中OnDraw函数添加如下代码:

CDC dcMem;                                                  //用于缓冲作图的内存DC
CBitmap bmp;                                                 //内存中承载临时图象的位图
dcMem.CreateCompatibleDC(pDC);               //依附窗口DC创建兼容内存DC
bmp.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());//创建兼容位图
dcMem.SelectObject(&bmp);                          //将位图选择进内存DC
dcMem.FillSolidRect(rect,pDC->GetBkColor());//按原来背景填充客户区,不然会是黑色


CMainFrame *pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd;//获取框架类指针
int nImageWidth = 0;
int nImageHeight = 0;
if(!pMain->image.IsNull()) 
{
nImageWidth = pMain->image.GetWidth();
nImageHeight = pMain->image.GetHeight();
CRect rectImage(0, 0, nImageWidth, nImageHeight);
pMain->image.Draw(dcMem, rectImage, rectImage);//先加载图片,再绘画图形
}




CString CDrawOnPicView::BootOpenDialog()   //返回选择的文件名称
{
    CString strFile = _T("");

    CFileDialog dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Describe bmp files (*.jpg)|*.jpg||"), NULL);

    if (dlgFile.DoModal())
    {
strFile = dlgFile.GetPathName();
    }

    return strFile;
}

void CDrawOnPicView::OnBitmap()//单击菜单栏中的一项的子菜单时调用的函数
{
CMainFrame *pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd;//获取框架类指针
CString strPathName = BootOpenDialog();
pMain->image.Destroy();
pMain->image.Load(strPathName);

Invalidate(true);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值