解决方案 »

  1.   

    ::LoadImage函数的第二个参数,可以是路径,也可以是ID(需要MAKEINTRESOURCE(ID)转一下)
      

  2.   

    CWnd* pWnd;
    pWnd=GetDlgItem(IDC_IMAGE1);
    CDC* pDC=pWnd->GetDC();
    HDC hDC = pDC->m_hDC; CRect rect_frame;
    pWnd->GetClientRect(&rect_frame);
    image1.Load(fileName);
    ::SetStretchBltMode(hDC,HALFTONE);
    ::SetBrushOrgEx(hDC,0,0,NULL); image1.Draw(hDC,rect_frame);
    ReleaseDC(pDC);//释放picture控件的DC其中image1是Cimage类的一个对象,IDC_IMAGE1是你的控件的ID
      

  3.   

    fileName就是你那个数组中的路径中的任意一个
      

  4.   

    还要在末尾加上一句:
    image.Destroy();
      

  5.   

    还要在末尾加上一句:
    image.Destroy();
    这里的image对象不是在栈上创建的吗?为什么还要手动释放?
      

  6.   

    还要在末尾加上一句:
    image.Destroy();
    这里的image对象不是在栈上创建的吗?为什么还要手动释放?
    你说的有道理,我指的是如果把image1作为一个对话框类成员变量的话需要加上image.Destroy()。如果是在函数内部栈上创建的临时变量,那就不需要添加,但是这样程序的效率会降低。
      

  7.   

    CPicture控件好像只支持bmp格式图片,如果包含要支持jpg和png,可能不能用CPicture控件,要不就是继承CPicture控件,进行自绘其实还是建议使用CImage类将图片绘制到指定区域,如果不同尺寸的图片,可以通过代码做到等比例缩放,不失真
      

  8.   

    写出继承CStatic类的新类,重写绘制函数OnPaint,绑定新类到picture控件..采用GDI+来绘制图片,因为GDI+支持图片格式多