MFC设置STATIC TEXT控件为图片

法一:加载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);

 

posted @ 2020-10-03 00:20  zwj鹿港小镇  阅读(530)  评论(0编辑  收藏  举报