vs2010 单文档MFC 通过加载位图文件作为客户区背景-阿里云开发者社区

开发者社区> season雅宁> 正文

vs2010 单文档MFC 通过加载位图文件作为客户区背景

简介: 实现效果: 这个其实是一个非常常见的功能,大家都会考虑给自己简单的工程做一个背景界面。其实只要在view类中重载OnEraseBkgnd()这个函数就好了。 代码如下: BOOL CdddView::OnEraseBkgnd(CDC* pDC) { // ...
+关注继续查看

实现效果:

这里写图片描述

这个其实是一个非常常见的功能,大家都会考虑给自己简单的工程做一个背景界面。其实只要在view类中重载OnEraseBkgnd()这个函数就好了。

代码如下:

BOOL CdddView::OnEraseBkgnd(CDC* pDC)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值


    CString string("b.bmp"); 
    HBITMAP hbitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),string, 
        IMAGE_BITMAP,1024,768, LR_CREATEDIBSECTION|LR_LOADFROMFILE); 
    //VERY IMPORTANT:NOT CALL THE SUPER CLASS FUNCTION 
    CPaintDC dc(this); 
    if(hbitmap==NULL) 
        return FALSE; 
    CBitmap bitmap; 
    bitmap.Attach(hbitmap); 
    BITMAP bmp; 
    bitmap.GetBitmap(&bmp); 
    CDC memDc;

    memDc.CreateCompatibleDC(pDC);
    CBitmap* pOldBitmap = memDc.SelectObject(&bitmap);
    CRect rect;
    GetClientRect(&rect);
    pDC->SetStretchBltMode(COLORONCOLOR);//这个模式不设置的话会导致图片严重失真
    pDC->StretchBlt(0,0,rect.Width() ,rect.Height(),
        &memDc,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
    memDc.SelectObject(pOldBitmap);
    memDc.DeleteDC();                                      //删除DC
    return TRUE; 
}

顺便给工程换个标题栏:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    if( !CFrameWndEx::PreCreateWindow(cs) )
        return FALSE;
    // TODO: 在此处通过修改
    //  CREATESTRUCT cs 来修改窗口类或样式
    cs.style &=~FWS_ADDTOTITLE;

    cs.lpszName = _T("XXX系统");

    return TRUE;
}

加载位图时候有的格式可能还有点问题,下面是讨论贴:
http://bbs.csdn.net/topics/391027250?page=1#post-399164597

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
VS2010无法保存项目文件(.csprj)的问题解决方法
VS2010无法保存项目文件(.csprj)的问题解决方法   【出错提示】保存项目文件“XXX”时出错。类没有注册。正在查找具有CLSID的对象:{D9B3211D-E57F-4426-AAEF-30A806ADD397}。
968 0
友盟+冯成蹊:如何通过数据智能玩转私域流量新生态
流量三分天下的局面,催生了私域流量的诞生。从第三方数据流量监测角度观察,2020年,以及在未来几年内,在私域流量方面会出现什么样的趋势和新机会?友盟+统计分析产品总监冯成蹊,就“如何通过数据智能玩转私域流量新生态”进行了分享。
1054 0
VS2010“.NET技术”自定义新建文件模版
  不知不觉VS2010已经成为.NET开发人员的必备工具,相比经典版VS2005,到过渡版VS2008,2010在性能稳定性和易用性上都得到很大的提高。   结合VS工具,其下的插件也层出不穷。今天重点给大家介绍如何使用VS2010VS2010自定义新建文件模版,新建文件时,添加个人信息,上海企业网站设计与制作如:创建者,创建时间等个性化信息。
680 0
深入分析MFC文档视图结构(项目实践)
文档视图结构(Document/View Architecture)是MFC的精髓,也是Observer模式的具体实现框架之一,Document/View Architecture通过将数据和其表示分开,提供了很好的数据层次和表现层次的解耦。
975 0
DLL(MFC)通过Window消息向C#程序传递数据
这是我在用C#开发IOServer遇到的一个问题,该程序需要用到原先用MFC开发的DLL,最大问题是该dll运行过程中的一些信息,通过window消息向指定的hwnd(窗体句柄)发送数据。数据的指针放在WParam参数里,LParam参数是数据的类型信息。
710 0
kubeadm高可用master节点部署文档
kubeadm的标准部署里,etcd和master都是单节点的。 但上生产,至少得高可用。 etcd的高可用,用kubeadm微微扩散一下就可以。 但master却官方没有提及。 于是搜索了几篇文档,过几天测试一下。
1783 0
如何给你的VS2010添加创建文件后的头注释
修改VS自带的模板   1) 类文件 D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplatesCache\CSharp\Code\2052\Class.
624 0
VS2010自定义新建文件模版
  不知不觉VS2010已经成为.NET开发人员的必备工具,相比经典版VS2005,到过渡版VS2008,2010在性能稳定性和易用性上都得到很大的提高。   结合VS工具,其下的插件也层出不穷。今天重点给大家介绍如何使用VS2010VS2010自定义新建文件模版,新建文件时,添加个人信息,如:创建者,创建时间等个性化信息。
533 0
VS2010 生成Xml格式的注释文档
项目, 属性, build, 勾选xml document file, 重新build, 即可生成xml注释文件, 然后还得找工具软件(看到anytao推荐SandCastle) 生成更易读的帮助文档.   作者:BobLiu 邮箱:lzd_ren@hotmail.com 出处:http://www.cnblogs.com/liuzhendong 本文版权归作者所有,欢迎转载,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
709 0
+关注
season雅宁
大数据生态圈,计算机视觉,机器学习,高端技术的爱好者,话不多说,上代码!!!
287
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载