MFC中如何把图片显示到窗口中?

inkb_xy 2011-05-08 09:44:38
各位大大们,RT,如果有可能的话,请给我一个详细一点的代码,成不?
比如:我要把D:\one.bmp显示到窗口中,应该如何做?

貌似在C++中这样很难,在JAVA中这个就很简单的,能不能说说之间的区别?谢谢~~

...全文
738 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
__lhy 2011-05-11
  • 打赏
  • 举报
回复
HBITMAP hbmp=(HBITMAP)LoadImage(NULL,"c:/123.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
assert(hbmp);
HDC hdc=GetDC(m_hwnd);
HDC memDC=CreateCompatibleDC(hdc);
SelectObject(memDC,hbmp);
BitBlt(hdc,0,0,100,100,memDC,0,0,SRCCOPY);
DeleteObject(hbmp);
DeleteDC(memDC);
ReleaseDC(m_hwnd,hdc);
akmaker 2011-05-11
  • 打赏
  • 举报
回复
一个按钮,加一个图片控件,图片控件要有ID号
在OnPaint方法里面的代码
void CXXXDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}


void CXXXDlg::OnBnClickedDisplay()//打开和现实的代码
{
// TODO: 在此添加控件通知处理程序代码
CPicture m_Pic;
//4.给按钮的函数里写上:(注意,这个IDC_SHOWPIC)是你那个显示控件的ID号.
CRect rect;
GetDlgItem(IDC_SHOWPIC)->GetWindowRect(&rect);
ScreenToClient(&rect);

CFile f;
CString FilePathName;
CFileException e;
CFileDialog dlg(TRUE,NULL,NULL,0,_T("All Files (*.*)|*.*|BMP (*.bmp)|*.bmp|DIB (*.dib)|*.dib|EMF (*.emf)|*.emf|GIF (*.gif)|*.gif|ICO (*.ico)|*.ico|JPG (*.jpg)|*.jpg|WMF (*.wmf)|*.wmf||"),NULL);
if(dlg.DoModal()==IDOK)
{
FilePathName=dlg.GetPathName();
if(m_Pic.m_IPicture != NULL) m_Pic.FreePictureData();
m_Pic.Load(FilePathName);
CClientDC dc(this);
m_Pic.UpdateSizeOnDC(&dc);
m_Pic.Show(&dc, &rect);
}
}
myplxdm 2011-05-08
  • 打赏
  • 举报
回复
CImage image;
image.Load("xx.bmp");

然后在窗体的OnPaint方法里面

CPaintDC dc(this);
image.BitBlt(dc.GetSafeHdc(),0,0,SRCCOPY);
inkb_xy 2011-05-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 heksn 的回复:]

你到网上搜一下CXImage
[/Quote]

CXImage是一个外库,我就一个简单的程序,不用这样吧。
想用本地的函数,怎么用?

LoadBitmap() CreateCompatibleDC() SelectObject() BitBlt()....
真的不懂这些个怎么用,能不能详细一点。Thanks~~
inkb_xy 2011-05-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mxss343314287 的回复:]

CDC* pCD;
pDC = GetDC();
ShowPicture(pDC,"D:\one.bmp",0,0,200,100);
也很简单是吧
[/Quote]

哥们,貌似没有这个函数吧,在MSDN中没有查到的。能不能详细一点?Thanks~~
  • 打赏
  • 举报
回复
你到网上搜一下CXImage
天煞19 2011-05-08
  • 打赏
  • 举报
回复
CDC* pCD;
pDC = GetDC();
ShowPicture(pDC,"D:\one.bmp",0,0,200,100);
也很简单是吧

19,472

社区成员

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

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