注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

面包会有的

php asp 高端网站开发 微信网站开发 视频会议软硬件

 
 
 

日志

 
 

MFC下位图显示  

2011-12-06 03:57:21|  分类: VC++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

以下内容WinCE5.0平台下,VS2008编译测试通过

 

 

1.    按钮上显示位图
    CString strPath = _T(".//bmp//test.bmp");
    CRect buttRect;
    m_Test.GetClientRect(&buttRect);
    HBITMAP hBmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), strPath, 
        IMAGE_BITMAP, buttRect.Width(), buttRect.Height(), 
        LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    m_Test.SetBitmap(hBmp);
    
2.    对话框显示位图
    CBitmap bmp;
    HBITMAP hBmp;
    CString strPath = _T(".//bmp//test.bmp");
    hBmp = (HBITMAP)::LoadImage(::AfxGetInstanceHandle(), strPath, 
        IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    bmp.Attach(hBmp);
    BITMAP bmpInfo;
    bmp.GetBitmap(&bmpInfo);
    CRect clientRect;
    GetClientRect(&clientRect);
    clientRect.NormalizeRect();

    CDC dcMem;
    dcMem.CreateCompatibleDC(GetDC());
    CBitmap *pBmp = (CBitmap *)dcMem.SelectObject(bmp);

    CDC *pDC = GetDC();
    SetStretchBltMode(pDC->GetSafeHdc(), HALFTONE);
    SetBrushOrgEx(pDC->GetSafeHdc(), 0, 0, NULL);
    pDC->StretchBlt(clientRect.left, clientRect.top, clientRect.Width(), 
        clientRect.Height(), &dcMem, 0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, SRCCOPY);
    ReleaseDC(pDC);

    DeleteDC(dcMem);
    DeleteObject(hBmp);
    
3.    CStatic控件显示位图
    方法1:
    {
        CString strPath = _T(".//bmp//test.bmp");
        CRect buttRect;
        CStatic *pStatic = (CStatic *)GetDlgItem(IDC_STATIC_001);
        pStatic->MoveWindow(0, 0, 300, 200);    //改变控件大小
        pStatic->ModifyStyle(0xF, SS_BITMAP|SS_CENTERIMAGE);
        pStatic->GetClientRect(&buttRect);
        HBITMAP hBmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), strPath, 
            IMAGE_BITMAP, buttRect.Width(), buttRect.Height(), 
            LR_LOADFROMFILE|LR_CREATEDIBSECTION);
        pStatic->SetBitmap(hBmp);
    }
    
    
方法 2:
    { 
        CStatic  *pStatic=(CStatic *)GetDlgItem(IDC_STATIC_001); 
        pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE); 
    
        CBitmap  bitmap;
        CBrush brush;
        brush.CreateSolidBrush(RGB(255, 70, 0));
    
        CClientDC dc(this);
        CDC MemDC;
        size_t m_width = 200;
        size_t m_height = 150;
        bitmap.CreateCompatibleBitmap(&dc, m_width/4.0, m_height/4.0);
        MemDC.CreateCompatibleDC(&dc);
        CBitmap *oldBmp = (CBitmap*)MemDC.SelectObject(&bitmap);
    
        MemDC.Rectangle(CRect(0, 0, m_width/4.0, m_height/4.0));
        MemDC.FillRect(CRect(0, 0, m_width, m_height), &brush);
    
        MemDC.SelectObject(oldBmp);
        MemDC.DeleteDC();
    
        pStatic->SetBitmap((HBITMAP)bitmap.Detach());
    }

  评论这张
 
阅读(968)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017