mfc显示图片

2 篇文章 0 订阅
1 篇文章 0 订阅

方式一:使用GDI方式


hScrDC = CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL);
    hMemDC 

    hMemDC  =  CreateCompatibleDC (hScrDC);
    bmp.LoadBitmap(MAKEINTRESOURCE(IDB_BITMAP1));
    bmp.GetBitmap(
& bmpInfo); 
    SelectObject(hMemDC,bmp);

    BitBlt(hScrDC,0,0,dwWidth,dwHeight,hMemDC,0,0,SRCCOPY);



方式二:直接读写FrameBuffer

HINSTANCE hInst = (HINSTANCE)::GetModuleHandle(NULL);
    HRSRC hrc 
= FindResource((HMODULE)hInst,MAKEINTRESOURCE(IDB_BITMAP1),RT_BITMAP);
    HGLOBAL hGlobal 
= LoadResource(NULL,hrc);
    dwBufSize 
= ::SizeofResource(NULL,hrc);
    gbmpBuf 
= (PBYTE)::LockResource(hGlobal);

    memcpy(gpLCDBuf,gbmpBuf,dwBufSize);


另外一种显示图片方式:


bmi.bmih.biSize = sizeof(bmi.bmih);
    bmi.bmih.biWidth = dwWidth;
    bmi.bmih.biHeight = -dwHeight;
    bmi.bmih.biPlanes = 1;
    bmi.bmih.biBitCount = (BYTE)bmpInfo.bmBitsPixel;
    bmi.bmih.biSizeImage = 0;
    bmi.bmih.biXPelsPerMeter = 0;
    bmi.bmih.biYPelsPerMeter = 0;
    bmi.bmih.biClrUsed = 0;
    bmi.bmih.biClrImportant = 0;
    bmi.bmih.biCompression = BI_BITFIELDS;
    *(DWORD *)(&bmi.rgq[0]) = 0xF800;
    *(DWORD *)(&bmi.rgq[1]) = 0x07E0;
    *(DWORD *)(&bmi.rgq[2]) = 0x001F;


    StretchDIBits (hScrDC, 0, 0, dwWidth, dwHeight, 0, 0, dwWidth, dwHeight,
        gbmpBuf, (PBITMAPINFO)&bmi, DIB_RGB_COLORS, SRCCOPY);



http://www.cnblogs.com/we-hjb/archive/2010/02/09/1666778.html



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值