VC++中给对话框设置背景图片的方法

-----------------------------------------------------方法一(铺满窗口)-------------------------------------
在窗口的OnPaint()函数中,加入如下代码:   
      CPaintDC   dc(this);   
      CRect   rect;   
                  GetClientRect(&rect);//得到窗体的大小   
                  CDC   dcMem;     
                  dcMem.CreateCompatibleDC(&dc);     
                  CBitmap   bmpBackground;   
                  bmpBackground.LoadBitmap(IDB_BITMAP1);//加载背景图片   
                  BITMAP   bitMap;   
                  bmpBackground.GetBitmap(&bitMap);   
                  CBitmap   *pbmpOld=dcMem.SelectObject(&bmpBackground);   
                  dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);   
      将背景图片画在窗口上。如果需要较快的速度,可以采用BitBlt函数。

-----------------------------------------------------方法二(图片不拉伸)---------------------------------------------------------------
在窗口的OnPaint()函数中,加入如下代码:   
      CPaintDC   dc(this);   
      CRect   rect;   
                  GetClientRect(&rect);//得到窗体的大小   
                  CDC   dcMem;     
                  dcMem.CreateCompatibleDC(&dc);     
                  CBitmap   bmpBackground;   
                  bmpBackground.LoadBitmap(IDB_BITMAP1);//加载背景图片   
                  BITMAP   bitMap;   
                  bmpBackground.GetBitmap(&bitMap);   
                  CBitmap   *pbmpOld=dcMem.SelectObject(&bmpBackground);   
                  dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);   
      将背景图片画在窗口上。如果需要较快的速度,可以采用BitBlt函数。

-----------------------------------------------------------------------------------------------

void CPeculiarMenuDlg::OnPaint()
{
 CDC* m_dc = this->GetDC();//注意这里。。。。要调用CDC类下的GetDC()方法实现重绘
 CDC m_memdc;
 m_memdc.CreateCompatibleDC(m_dc);
 CBitmap m_bitmap;
 m_bitmap.LoadBitmap(IDB_MAIN);//载入的图片的ID号
 m_memdc.SelectObject(&m_bitmap);
 CRect m_rect;
// GetClientRect(m_rect);
 m_dc->BitBlt(0,0,800,700,&m_memdc,0,0,SRCCOPY);
 
 m_bitmap.DeleteObject();

}

注意,这种方法是在OnPaint()函数中实现的。

VC:UI编程的更多相关文章

  1. 面向UI编程:ui.js 1.0 粗糙版本发布,分布式开发+容器化+组件化+配置化框架,从无到有的艰难创造

    时隔第一次被UI思路激励,到现在1.0的粗糙版本发布,掐指一算整整半年了.半年之间,有些细节不断推翻重做,再推翻再重做.时隔今日,终于能先出来个东西了,这个版本很粗糙,主体功能大概能实现了,但是还是有 ...

  2. Vc数据库编程基础MySql数据库的表查询功能

    Vc数据库编程基础MySql数据库的表查询功能 一丶简介 不管是任何数据库.都会有查询功能.而且是很重要的功能.上一讲知识简单的讲解了表的查询所有. 那么这次我们需要掌握的则是. 1.使用select ...

  3. Vc数据库编程基础MySql数据库的表增删改查数据

    Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...

  4. Vc数据库编程基础MySql数据库的常见库命令.跟表操作命令

    Vc数据库编程基础MySql数据库的常见操作 一丶数据库常见的库操作 1.1查看全部数据库 命令:  show databases 1.2 创建数据库 命令: Create database 数据库名 ...

  5. Vc数据库编程基础1

    Vc数据库编程基础1 一丶数据库 什么是数据库 数据库简单连接就是存储数据的容器. 而库则是一组容器合成的东西. 也就是存储数据的.我们编程中常常会用到数据库. 什么是数据管理系统 数据库管理系统就是 ...

  6. 面向UI编程框架:ui.js框架思路详细设计

    由于上一次的灵光一闪,萌生了对面向UI编程的思想实现.经过一段时间的考虑和设计,现在将思想和具体细节记录下来: 具体思路描述: 在UI.config文件中,配置所有参数,比如页面模板.所有组件.组件控 ...

  7. 重要:VC DLL编程

    VC DLL编程 静态链接:每个应用程序使用函数库,必须拥有一份库的备份.多个应用程序运行时,内存中就有多份函数库代码的备份. 动态连接库:多个应用程序可以共享一份函数库的备份. DLL的调用方式:即 ...

  8. 前端思想实现:面向UI编程_____前端框架设计开发

    引子,我去小说看多了,写博客竟然写引子了!!!不过,没引子不知道怎么写了.言归正传吧,前端这个职业,也就这几年刚刚火起来的职业,以前那个混乱的年代,前端要么是UI设计师代劳解决问题,要么就是后端程序员 ...

  9. 通过实现一个TableView来理解iOS UI编程

    推荐一篇神作: 通过实现一个TableView来理解iOS UI编程 http://blog.jobbole.com/61101/

随机推荐

  1. bzoj3626 [LNOI2014]LCA——树链剖分

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3626 思路很巧妙,把区间换成前缀和相减: 把 l ~ r 到根路径上的点的点权都+1,然后 ...

  2. 优化Laravel的分页LIMIT和OFFSET调用

    在分页系统中使用limit和offset是很常见的,它们通常也会和ORDER BY一起使用.索引对排序较有帮助,如果没有索引就需要大量的文件排序. 一个常见的问题是偏移量很大,比如查询使用了LIMIT ...

  3. oracle 备份数据

    exp AC_SSO/AC_SSO@HB file=d:\wamp\Golden3C_AuthenticationCenter.dmp owner=AC_SSO full=y用户名/密码@服务 exp ...

  4. bzoj 4070: [Apio2015]雅加达的摩天楼【spfa】

    明明是个最短路却有网络流一样的神建图= A = 首先要是暴力建图的话最坏有O(nm)条边.所以优化建图. 考虑分块思想,设bs=sqrt(n),对于p大于bs的,直接连边即可,最多有sqrt(n)条, ...

  5. PHP 循环一个文件下的所有目录以及文件

    function test($dir) { //判断dir是否目录 if(is_dir($dir)) { $files = []; //列出 dir 目录中的文件和目录: $list = scandi ...

  6. 【css】如何实现环形进度条

    最近团队的童鞋接到了一个有关环形进度条的需求,想要还原一个native的沿环轨迹渐变进度条的效果,看到这个效果的时候,笔者陷入了沉思.. 环形进度条的效果,最先想到的就是使用CSS利用两个半圆的hac ...

  7. 使用Maven将dubbox安装进资源仓库

    dubbox网址:https://github.com/dangdangdotcom/dubbox dobbox版本:https://github.com/dangdangdotcom/dubbox/ ...

  8. 求指教--hadoop2.4.1集群搭建及管理遇到的问题

    集群规划: 主机名 IP 安装的软件 运行的进程 hadooop 192.168.1.69 jdk.hadoop NameNode.DFSZKFailoverController(zkfc) hado ...

  9. mysql各个版本下载地址

    之所记录下来是因为我找了好久才找到:这下记着了:http://downloads.mysql.com/archives/community/ 希望对没有找到的朋友有帮助

  10. Hibernate配置(外部配置文件方式)

    配置Hibernate有2种方式,本文讲的是通过外部配置文件配置的方式 Hibernate核心配置文件 <?xml version='1.0' encoding='UTF-8'?> < ...