法一:加载bmp
#define HBMP(filepath,width,hight) (HBITMAP)LoadImage(AfxGetInstanceHandle(),filepath,IMAGE_BITMAP,width,hight,LR_LOADFROMFILE|LR_CREATEDIBSECTION) //宽高设置,应该按照控件大小取设置 CRect rect; m_photoBmp.GetWindowRect(rect); //静态控价设置bitmap m_photoBmp.ModifyStyle(0xF, SS_BITMAP | SS_CENTERIMAGE); m_photoBmp.SetBitmap(HBMP(photoFileName, rect.Width(), rect.Height()));
法二:加载jpg
CImage image; if (!PathFileExists(photoFileName)) //判断此路径是否存在 return; //根据路径载入图片 image.Load(photoFileName); //获取Picture Control控件的大小 m_photoBmp.GetWindowRect(&rect); //将客户区选中到控件表示的矩形区域内 ScreenToClient(&rect); //窗口移动到控件表示的区域,使控件的大小等于图片的大小 m_photoBmp.MoveWindow(rect.left, rect.top, rect.Width(), rect.Height(), TRUE); CWnd *pWnd = NULL;///使用这种方法获取控件句柄,可以动态获取不同控件的句柄,尤其在批量控件设置时很方便 pWnd = GetDlgItem(IDC_PHOTO_STATIC);//获取控件句柄 pWnd->GetClientRect(&rect);//获取句柄指向控件区域的大小 CDC *pDC = NULL; pDC = pWnd->GetDC();//获取picture的DC image.Draw(pDC->m_hDC, rect);//将图片绘制到picture表示的区域内 ReleaseDC(pDC);