用VC++实现picture control从外部读取图像(而不是控件关联bitmap图像)

2024-12-01 00:30:21
推荐回答(1个)
回答1:

MFC 自己封装了BITMAP类,可以加载BITMAP ,但是加载jpg还得自己写整个解析过程

我写了一个读取BITMAP的代码,如下

放在Button的单击事件里面

CRect r;

 GetClientRect(&r);

 CDC* pDC = GetDC();   

 //填充背景

 

 pDC->FillRect(&r,NULL);

 HBITMAP hBitmap;

 

 CString sFile="e:/shao.bmp";   //设置路径

 hBitmap = (HBITMAP)LoadImage( GetModuleHandle(NULL),(LPCTSTR)sFile, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

 CBitmap cbmp;

 cbmp.Attach(hBitmap);

 CDC memdc;

 memdc.CreateCompatibleDC(pDC);

 memdc.SelectObject(&cbmp);

 BITMAP bmp;

 //获得位图参数

 long width,height;

 cbmp.GetBitmap(&bmp);

 width = bmp.bmWidth;

 height = bmp.bmHeight;                                         

 pDC->StretchBlt(r.left,r.top,(int)width,(int)(height),

  &memdc,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);

 cbmp.Detach(); 

 

 

如果你想显示jpg,tif格式建议学习opencv+MFC 很方便