Picture Control

载入png图片

CStatic* pWndYL = (CStatic*)GetDlgItem(IDC_PIC_YL); // 得到 Picture Control 句柄  
CImage imageYL;
imageYL.Load((m_strAppPath + _T("src/ylSelected.png")).c_str());
HBITMAP hBmpYL = imageYL.Detach();
pWndYL->SetBitmap(hBmpYL);
pWndYL->SetWindowPos(NULL,
0,
0,
100,
50,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER);

插入图片

IDC_STATIC_PICTURE 是 picture box 控件的 ID

CImage image; //创建图片类
image.Load(m_vPersonInfo[itemData].picPath.c_str()); //根据图片路径加载图片
CRect rect;//定义矩形类
int cx = image.GetWidth();//获取图片宽度
int cy = image.GetHeight();//获取图片高度

GetDlgItem(IDC_STATIC_PICTURE)->GetWindowRect(&rect);//将窗口矩形选中到picture控件上
ScreenToClient(&rect);//将客户区选中到Picture控件表示的矩形区域内
GetDlgItem(IDC_STATIC_PICTURE)->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height(), TRUE);//将窗口移动到Picture控件表示的矩形区域

CWnd *pWnd = GetDlgItem(IDC_STATIC_PICTURE);//获得pictrue控件窗口的句柄

pWnd->GetClientRect(&rect);//获得pictrue控件所在的矩形区域

CDC *pDC = pWnd->GetDC();//获得pictrue控件的DC
pDC->SetStretchBltMode(COLORONCOLOR);//很有用,使图片缩放后颜色不失真
image.Draw(pDC->m_hDC, rect); //将图片画到Picture控件表示的矩形区域
ReleaseDC(pDC);//释放picture控件的DC

响应单击事件

将其notify属性设置为true。