最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

使用PictureControl显示BMP图片

来源:动视网 责编:小OO 时间:2025-09-22 23:02:00
文档

使用PictureControl显示BMP图片

CBitmapbitmap;bitmap.LoadBitmap(IDB_CTYPE_REPAIR);//HBITMAPhBitmapRet=bitmap.Detach();((CStatic*)GetDlgItem(IDC_CTYPE))->SetBitmap(static_cast(bitmap.Detach()));下面是关于怎样使用PictureControl显示BMP图片:查找了一下SetBitmap是这样定义的://uBmpResource:图片ID;uCtrlRe
推荐度:
导读CBitmapbitmap;bitmap.LoadBitmap(IDB_CTYPE_REPAIR);//HBITMAPhBitmapRet=bitmap.Detach();((CStatic*)GetDlgItem(IDC_CTYPE))->SetBitmap(static_cast(bitmap.Detach()));下面是关于怎样使用PictureControl显示BMP图片:查找了一下SetBitmap是这样定义的://uBmpResource:图片ID;uCtrlRe
  

CBitmap bitmap;

bitmap.LoadBitmap(IDB_CTYPE_REPAIR);

//HBITMAP hBitmapRet =bitmap.Detach();

((CStatic*)GetDlgItem(IDC_CTYPE))->SetBitmap(static_cast< HBITMAP >( bitmap.Detach() ) ) ;

下面是关于怎样使用Picture Control显示BMP图片:

  查找了一下SetBitmap是这样定义的:

  // uBmpResource:图片ID; uCtrlResource: Picture控件ID

  void SetBitmap(UINT uBmpResource, UINT uCtrlResource)

  {

  HBITMAP hBitmap;

  CStatic *pStatic = (CStatic *)GetDlgItem(uCtrlResource);

  hBitmap = (HBITMAP)LoadImage(

  AfxGetInstanceHandle(),

  MAKEINTRESOURCE(uBmpResource),

  IMAGE_BITMAP,

  0,

  0,

  LR_LOADMAP3DCOLORS);

  pStatic->ModifyStyle(0xF, SS_BITMAP);

  pStatic->SetBitmap(hBitmap);

  }

  根据定义,在对话框初始的时候写入下面的代码(结果成功正常显示):

  BOOL CLoginDog::OnInitDialog()

  {

  CDialog::OnInitDialog();

  //添加登陆窗口中的图片

  HBITMAP hBitmap;

  //关联图片ID

  hBitmap =(HBITMAP)LoadImage(AfxGetInstanceHandle(),

  MAKEINTRESOURCE(IDB_BITMAP_LOGIN_PIC),

  IMAGE_BITMAP,0,0,

  LR_LOADMAP3DCOLORS);

  //获得指向静态控件的指针

  CStatic *pStatic=(CStatic *)GetDlgItem(IDC_STATIC_PIC);//控件ID

  //设置静态控件的样式,使其可以使用位图,并试位标显示使居中

  pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);

  //设置静态控件显示位图

  pStatic->SetBitmap(hBitmap);

  return TRUE;

  } 来源:考试大-计算机二级考试

////////////////////////////////////////////////////////////////////////////

这两天在做一个图像压缩处理程序的界面,其中用到了动态加载位图。之前只做过静态位图的加载,做动态位图加载也花了点时间。下面我就把静态和动态加载的方法都跟大家分享一下,同时也便于自己查阅,如果大家有更好的办法也记得共享一下哦!

静态加载位图:

1.添加控件:添加Text控件做为显示位图的控件,添加“显示位图”按钮控件;

2.插入位图资源,设置ID为IDB_BITMAP1;

3.用classwizard为按钮控件添加响应函数,并添加代码如下:

void CStaticImageDlg::OnShowbitmap()

{

// TODO: Add your control notification handler code here

//获得指向静态控件的指针

CStatic *pStatic=(CStatic *)GetDlgItem(IDC_STATICIMAGE2);

//获得位图句柄

HBITMAP hBitmap=::LoadBitmap(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_BITMAP1));

//设置静态控件的样式,使其可以使用位图,并试位标显示使居中

pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);

//设置静态控件显示位图

pStatic->SetBitmap(hBitmap);

}

然后就可以编译运行了。

动态加载位图

动态加载位图也就是说可以通

过点击按钮来选择文件中你所想要打开显示的位图,而不是事先导入的。

1.首先也是添加显示位图的控件,不过这次添加的是picture控件,然后添加“显示位图”按钮;

2.为“显示位图”按钮添加响应函数:

void CLoadMapDlg::OnLoadmap()

{

// TODO: Add your control notification handler code here

OnPaint();

CString m_strfile;

CRect r;

GetClientRect(&r); //获得控件客户窗口大小

CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,

_T("Layer Files (*.DEM;*.TIFF;*.BMP;*.JPG)|*.DEM;*.TIFF;*.BMP;*.JPG;)||"),NULL);

if(dlg.DoModal ())

{

m_strfile=dlg.GetPathName ();

}

HBITMAP hbitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),m_strfile,IMAGE_BITMAP,r.Width()/2,

r.Height()/2,LR_LOADFROMFILE);

CStatic* pPic=(CStatic*)GetDlgItem(IDC_PICTURE);

ASSERT(pPic);

pPic->SetBitmap(hbitmap);

Invalidate();

}

3.最重要的一点是插入的picture控件的TYPE要选中“BitMap”,而不是Frame,否则将出现编译通过,而位图无法显示的情况!

在解决静态和动态加载图片的过程中我更加体会到做事情多思考,多动手,多像GOOGLE请教的道理。以前我总是照着书上的例子敲代码,结果发现真正要做出一个东西的时候,却一行代码都写不出来。那时候才后悔当初练习的时候为什么不看懂才敲。俺要做的是程序员不是打字员。虽然我们必须从书本上的范例开始学习,但是在每学完一个例子以后我们应该把从中学到的东西结合自己以前学的东西来做出一个属于自己的东西来,这样我们才真正进步了哦!

//////////////////////////////////////////////////////////////////////

查看文章

VC动态加载bmp位图资源2010-10-31 14:56SDK和MFC插入资源时,都要求是BMP格式的位图资源。但位图资源不是显示动态图片。好了不废话。下面介绍两种VC动态加载bmp位图资源:

1、加载BMP文件路径的位图资源

利用到了一个API函数LoadImage(),具体用法可以查询MSDN

添加一个静态文本控件IDC_Static,添加成员变量m_Image,添加入以下代码:

this->m_Image.ModifyStyle(0,SS_BITMAP | SS_CENTERIMAGE); //该静态控件设置为是用来显示位图的,

HBITMAP hBmp = (HBITMAP)::LoadImage(0, "2.bmp

Bitmap=::LoadBitmap(AfxGetResourceHandle(),MAKEINTRESOURCE(IDB_BITMAP1));

//从工程资源处获得IDB_BITMAP1的位图句柄,并将其赋值给hBitmap变量

this->m_Image.SetBitmap(hBitmap); // 将bmp文件显示到静态文本框中

VC++6.0编译通过

本文来源:eagle200901

文档

使用PictureControl显示BMP图片

CBitmapbitmap;bitmap.LoadBitmap(IDB_CTYPE_REPAIR);//HBITMAPhBitmapRet=bitmap.Detach();((CStatic*)GetDlgItem(IDC_CTYPE))->SetBitmap(static_cast(bitmap.Detach()));下面是关于怎样使用PictureControl显示BMP图片:查找了一下SetBitmap是这样定义的://uBmpResource:图片ID;uCtrlRe
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top