MFC动态加载图片
【1】拖个控件Picture Control到对话框中

【2】为控件添加一个变量m_picControl
【3】加载图片
HBITMAP hBitmap = (HBITMAP)LoadImageA(NULL, "Z:/testProj/res/bitmap2.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
m_picControl.SetBitmap(hBitmap);【4】问题解决
此时发现无法显示图片,这是因为你没有加载图片的类型,默认是Frame

【5】调整图片大小
HDC dc = GetDC()->m_hDC;
HBITMAP hBitmapNew;
TranslateBitmapSize(dc, hBitmap, 140, 140, hBitmapNew, 50, 50);
BOOL TranslateBitmapSize(IN HDC hCurScreemDC, //当前屏幕DC,可通过GetDC获得IN HBITMAP hBmpSrc, //原BITMAP句柄IN int nSrcWidth, //原BITMAP的宽度IN int nSrcHeight, //原BITMAP的高度OUT HBITMAP &hBmpDst, //改变大小后的BITMAP的句柄IN int nDstWidth, //改变大小后的BITMAP的宽度IN int nDstHeight //改变大小后的BITMAP的高度
)
{if (hBmpSrc == NULL || hCurScreemDC == NULL){return FALSE;}if (hBmpDst != NULL){DeleteObject(hBmpDst);}HDC hOldSrcDC = NULL;HDC hOldDstDC = NULL;HDC hSrcDC = CreateCompatibleDC(hCurScreemDC);HDC hDstDC = CreateCompatibleDC(hCurScreemDC);hBmpDst = CreateCompatibleBitmap(hCurScreemDC, nDstWidth, nDstHeight);hOldSrcDC = (HDC)SelectObject(hSrcDC, hBmpSrc);hOldDstDC = (HDC)SelectObject(hDstDC, hBmpDst);StretchBlt(hDstDC, 0, 0, nDstWidth, nDstHeight, hSrcDC, 0, 0, nSrcWidth, nSrcHeight, SRCCOPY);SelectObject(hSrcDC, hOldSrcDC);SelectObject(hDstDC, hOldDstDC);DeleteObject(hSrcDC);DeleteObject(hDstDC);return TRUE;
}