首页 > 代码库 > MFC 的 Picture Control 加载 BMP/PNG 图片的方法

MFC 的 Picture Control 加载 BMP/PNG 图片的方法

1. 加载 BMP

 

[cpp] view plaincopyprint?
  1. CStatic* pWnd = (CStatic*)GetDlgItem(IDC_PIC); // 得到 Picture Control 句柄   
  2. pWnd->ModifyStyle(0, SS_BITMAP); // 修改它的属性为位图   
  3. pWnd->SetBitmap((HBITMAP)::LoadImage(NULL, _T("bmp.bmp"),   
  4.                 IMAGE_BITMAP,   
  5.                 100,   
  6.                 50,   
  7.                 LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE));  
CStatic* pWnd = (CStatic*)GetDlgItem(IDC_PIC); // 得到 Picture Control 句柄
pWnd->ModifyStyle(0, SS_BITMAP); // 修改它的属性为位图
pWnd->SetBitmap((HBITMAP)::LoadImage(NULL, _T("bmp.bmp"), 
                IMAGE_BITMAP, 
                100, 
                50, 
                LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE));

2. 加载 PNG

 

 

[cpp] view plaincopyprint?
  1. CStatic* pWnd = (CStatic*)GetDlgItem(IDC_PIC); // 得到 Picture Control 句柄   
  2. CImage image;  
  3. image.Load(_T("png.png");  
  4. HBITMAP hBmp = image.Detach();  
  5. pWnd->SetBitmap(hBmp);  
  6. pWnd->SetWindowPos(NULL,   
  7.                    0,   
  8.                    0,   
  9.                    100,   
  10.                    50,   
  11.                    SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER);  
CStatic* pWnd = (CStatic*)GetDlgItem(IDC_PIC); // 得到 Picture Control 句柄
CImage image;
image.Load(_T("png.png");
HBITMAP hBmp = image.Detach();
pWnd->SetBitmap(hBmp);
pWnd->SetWindowPos(NULL, 
                   0, 
                   0, 
                   100, 
                   50, 
                   SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER);

3. 在资源编辑器中选定图片控件 -> Alt+Enter 打开该图片控件的“属性窗口” -> 在 "Type" 中选定图片类型 -> 在"Image"中选定图片对应的资源 ID.