通过浏览按钮显示图像

用户名

我是C ++的新手,并且正在使用Visual Studio 2012的MFC。如何通过浏览按钮在图片控件中显示图像?在单击浏览按钮时,我将路径设置为这样的编辑控件

void CSimilarityOfImagesDlg::OnBnClickedButton1()
{
    CFileDialog dlg(TRUE);
    int iRet = dlg.DoModal();
    CString path = dlg.GetPathName();

    SetWindowText (path);
    CEdit* cedit;
    cedit = reinterpret_cast<CEdit *>(GetDlgItem(IDC_EDIT1));
    cedit->SetWindowTextW(path);
    cedit->GetWindowTextW(path);

}
安德鲁·科米亚金(Andrew Komiagin)

MFC / ATL框架附带了CImage允许您加载图像的类(支持PNG,JPEG,BMP,GIF和其他格式)。为了在优化校准中显示目标图像,您需要使用CStatic::SetBitmap()方法。CImage类实现Detach()方法,它允许你去直接访问HBITMAP对象。这是一个例子:

m_PictureCtrl是你这样的对话窗口中头文件中定义:

CStatic m_PictureCtrl;

IDC_PIC_STATIC使用标准的MFC数据交换机制将其映射到控件ID

void CTestPicDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_PIC_STATIC, m_PictureCtrl);
}

浏览按钮处理程序如下所示:

CFileDialog dlg(TRUE);
if (dlg.DoModal() == IDOK)
{    
    CString sPath = dlg.GetPathName();

    CImage img;
    HRESULT hr = img.Load(sPath);
    if (FAILED(hr))
    {
        CString sErrorMsg;
        sErrorMsg.Format(_T("Failed to load %s"), sPath );    
        AfxMessageBox(sErrorMsg);
        return;
    }

    CRect rect;
    m_PictureCtrl.GetClientRect(rect);
    int nWidth = rect.Width();
    int nHeight = rect.Height();

    CDC* pScreenDC = GetDC();
    CDC MemDC;
    MemDC.CreateCompatibleDC(pScreenDC);
    CBitmap bmp;
    bmp.CreateCompatibleBitmap(pScreenDC, nWidth, nHeight);

    CBitmap *pOldObj = MemDC.SelectObject(&bmp);
    img.StretchBlt(MemDC.m_hDC, 0, 0, nWidth, nHeight, 0, 0, img.GetWidth(), img.GetHeight(), SRCCOPY);
    MemDC.SelectObject(pOldObj);

    m_PictureCtrl.SetBitmap((HBITMAP)bmp.Detach());
    ReleaseDC(pScreenDC);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过浏览按钮显示图像

来自分类Dev

如何通过单击图像按钮显示全屏图像

来自分类Dev

如何通过单击按钮在背景图像中循环显示?

来自分类Dev

通过按钮下载图像?

来自分类Dev

图像浏览器/按钮图像

来自分类Dev

单击按钮显示图像

来自分类Dev

单击按钮显示图像

来自分类Dev

按钮不显示图像

来自分类Dev

主题浏览器 Cordova 插件:后退、前进和关闭按钮的图像未显示

来自分类Dev

如何通过单击 PHP 中的按钮来浏览文件并显示其内容?

来自分类Dev

图像显示在浏览器中,但无法通过代码下载 (node.js)

来自分类Dev

通过单击按钮旋转图像

来自分类Dev

Android活动中的图像浏览按钮

来自分类Dev

提交图像时删除浏览按钮

来自分类Dev

如何通过单击图像按钮打开图像

来自分类Dev

tkinter按钮不显示图像

来自分类Dev

单击按钮隐藏并显示图像

来自分类Dev

隐藏/显示图像按钮JS

来自分类Dev

tkinter按钮不显示图像

来自分类Dev

单击按钮不显示图像

来自分类Dev

如何仅显示按钮图像?

来自分类Dev

在 Java 按钮上显示图像

来自分类Dev

按钮不显示(左)图像

来自分类Dev

如何仅通过一个按钮单击事件即可隐藏或显示图像

来自分类Dev

如何通过Qt实现浏览按钮功能

来自分类Dev

如何通过Qt实现浏览按钮功能

来自分类Dev

图像按钮上的Android图像未显示

来自分类Dev

Tinymce + Filemanager =图片显示浏览按钮丢失

来自分类Dev

Uploadify在FireFox中不显示浏览按钮