Picture Control 打开图片

本文介绍如何使用CImage类加载和显示各种格式的图片文件,包括使用对话框选择图片路径,并展示了两种不同的图片显示方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要使用CImage类 要先在引入atlimage.h头文件在窗口OnPaint()中添加Show_picture();
void CCMFCDlg::OnBnClickedOk()
{
    CFileDialog cfd(true,
        _T(".jpg"),
        NULL,
        OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,
        _T("图片文件 (*.jpg;*.bmp;*.png;*.gif)|*.jpg;*.bmp;*.png;*.gif|所有文件 (*.*)|*.*||"),
        this);  //选择图片的对话框
    if(cfd.DoModal()!=IDOK) //判断是否获得图片
    {
        return;
    }
    m_path = cfd.GetPathName();  //获得图片路径
    UpdateData(false);  //更新路径公共变量
    Show_picture();  //调用显示图片函数
}

 
//显示图片函数
void CCMFCDlg::Show_picture()
{
    if(m_path=="")  //判断图片路径是否存在
    {
        return;
    }
    CWnd *m_picture = GetDlgItem(IDC_STATIC1);
    CImage image;  //使用图片类
    image.Load(m_path);   //装载路径下图片信息到图片类
    CRect rect;
    m_picture->GetClientRect(&rect);  //获得控件的区域对象
    CDC* pDC = m_picture->GetWindowDC();  //获得显示控件的DC
    image.Draw(pDC->m_hDC, rect);  //图片类的图片绘制Draw函数
    ReleaseDC(pDC);
}
以下是显示BITMAP图片

    HBITMAP bitmap=(HBITMAP)LoadImage(
        AfxGetInstanceHandle(),
        L"C:\\WINDOWS\\Blue Lace 16.bmp",
        IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    ASSERT(bitmap);
    CStatic *img = (CStatic*) GetDlgItem(IDC_STATIC1);
    img->SetBitmap(bitmap);
    img->Invalidate();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值