华强电子网

电子元器件
采购信息平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

MFC如何显示位图

来源:-- 作者:-- 浏览:587

标签: 位图 mfc

摘要: void CBitmapView::wtj_paint(){ CDC *pDC; pDC=GetDC(); CBitmap wtj_bitmap; CDC dcMemory; wtj_bitmap.LoadBitmap(IDB_BITMAP1); BITMAP bmInfo; wtj_bitmap.GetObjec

void CBitmapView::wtj_paint()
{
  CDC *pDC;
  pDC=GetDC();
  CBitmap wtj_bitmap;
  CDC dcMemory;
  wtj_bitmap.LoadBitmap(IDB_BITMAP1);
  BITMAP bmInfo;
  wtj_bitmap。GetObject(sizeof(bmInfo),&bmInfo);
  dcMemory。CreateCompatibleDC(pDC);
  dcMemory.SelectObject(&wtj_bitmap);
  pDC->BitBlt(100,100, bmInfo.bmWidth,bmInfo.bmHeight,  &dcMemory,0,0,SRCCOPY);
 ReleaseDC(pDC);
}
其中我还是不大明白,为什么wtj_bitmap。GetObject()函数可以这样用,可以说是把wtj_bitmap的信息copy到了bmInfo中。昨天我都还在想,怎样才能把位图的长和宽的信息取出来!哦解决了!

简单的记一下如何显示位图:

1、声明一个CBitmap对象,并从资源中加位图。

2、创建一个兼容的DC,用CDC的成员函数CreateCompatibleDC。

3、用CDC的成员函数SelectObject将位图选入到兼容DC中。

4、用CDC的成员函数BitBlt来输出位图。

就这样了,一个完整的位图说显示了!

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

如下的改动可以使位图在窗口中全部显示,自动拉伸!

void CBitmapView::wtj_paint()
{
  CDC *pDC;
  CRect rect;
  pDC=GetDC();
  CBitmap wtj_bitmap;
  CDC dcMemory;
  wtj_bitmap.LoadBitmap(IDB_BITMAP1);
  BITMAP bmInfo;
  wtj_bitmap。GetObject(sizeof(bmInfo),&bmInfo);
  dcMemory。CreateCompatibleDC(pDC);
  dcMemory.SelectObject(&wtj_bitmap);
  pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMemory, 0,0, bmInfo.bmWidth,bmInfo.bmHei  ght, SRCCOPY);
  ReleaseDC(pDC);
}



技术资讯    技术方案   技术应用   技术新品 技术前沿   行业资讯 行业方案 行业应用 行业新品 行业前沿

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67