在mfc里,想要在Picture控件中载入一张图片有两种方法:静态的和动态的。静态的方法就是图片先载入资源(.rc)文件中,拥有一个唯一的ID;动态的方法就是制定图片的路径名即可。

当然这样的方法网上一搜有很多,比如:
vc picture控件的分类进行拉总结,

(一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID)

(二) 动态载入图片(即只需要在程序中指定图片的路径即可载入)

为方便说明,我们已经建好一个基于对话框的工程,名为Ttest.

对话框类为CTestDlg

(一) vc picture控件非动态载入图片.

方法1.先从最简单的开始,用picture 控件来实现.

步骤:

先在资源里Import一张图片,ID为IDB_BITMAP2

然后在对话框上添加一个picture控件,右键点击打开属性,

将type下拉框选择BITMAP,紧跟着下面就出现一个Image下拉框,

拉开就会看到所有已经载入好的图片,

选择你要的图片.运行程序即可看到.

方法2vc picture控件.通过背景图

同样如上,先载入一张图片,ID为IDB_BITMAP2

TestDlg.h中

CBrush m_brBk;//在public中定义

TestDlg.cpp中

在初始化函数OnInitDialog()中加入:

BOOL CTestDlg::OnInitDialog()

{

            CDialog::OnInitDialog();

CBitmap bmp;

bmp.LoadBitmap(IDB_BITMAP2);

m_brBk.CreatePatternBrush(&bmp);

bmp.DeleteObject();

return TRUE; // return TRUE unless you set the focus to a control

}

在打开类向导,找到WM_CTLCOLOR消息,重载得对应函数OnCtlColor(),添加如下:

HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

{

            HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);if (pWnd == this)

{

 return m_brBk;

}

    return hbr;

}

不过以上的方法均不能达到图片随控件的大小而适应(至少我没有成功).依稀记得大三的软件课程设计里边也用到过一次picture控件。这次做毕设在网上找了很多方法均没有达到图片随控件改变而改变的效果,更多的是控件随图片的大小改变而改变。

于是乎,找到了当时的工程文件,动态载入图片的代码是这样的:

mypic_video.GetClientRect(&rect);//获取控件的尺寸
hBitmap=(HBITMAP)::LoadImage(0,_T("bao.bmp"),IMAGE_BITMAP,rect.right-rect.left,rect.bottom-rect.top,LR_LOADFROMFILE|LR_DEFAULTSIZE);//加载图片bmp
mypic_video.ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);//设置picture控件的风格(自行选择)
mypic_video.SetBitmap(hBitmap);//显示图片

mypic_video即为picture控件关联的变量,其中“bao.bmp”为图片名。可以放到应用程序的当前目录下。

vc picture控件载入背景图,随控件大小改变相关推荐

  1. MFC/WTL 设置背景图和控件透明的方法

    1.MFC 对话框设置背景图 方法一: 1>资源中导入一张bitmap图,如命名为 IDB_BITMAP1 2>对话框中添加一个 Picture Control,属性设置 Type 改为B ...

  2. 实现海报合成工具,自定义背景图、位置、大小等 (html2canvas)

    <template><!-- 海报合成工具 --><div class="all-tool"><div :style="bgSt ...

  3. 如何让背景图按div自适应大小

    使用background-size让背景图按比例适应div 用法: background:url('-/-png') center center no-repeat background-size:c ...

  4. 计算机过去与未来ppt背景图,过去无可挽回未来可以改变背景图高清图片大全

    过去无可挽回未来可以改变背景图高清图片大全是一组在抖音上面很火爆的表情包图片,一组超多内容可以去查看的素材.会让用户在线很简单的进行下载,还可以免费的就会让用户进行使用.大量会帮助到用户进行保存的内容 ...

  5. vc picture控件的分类总结(转载)

    VC PICTURE控件的使用,如何加载背景图片 vc picture控件的分类总结: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定 ...

  6. Flutter Container、Center设置控件居中背景及其他属性

    Flutter Container.Center设置控件居中背景及其他属性 //控件可以居中Container(alignment: Alignment.bottomCenter,//设置控件内容的位 ...

  7. Android开发之Glide设置View背景图的方法

    先看效果图: 看了下效果还可以,虽然此方法在Glide4.1.2版本已过时但是还可以使用 针对Glide4.0以上版本设置View背景图方法如下:Kotlin版本 package com.xiayiy ...

  8. HTML背景图的使用(超详细)

    添加背景图片 background-image:url('./img/01.png'); 背景图自适应盒子的大小 background-size:cover; 背景图片绝对定位 background- ...

  9. html背景图适应div_体验css+div 之 三种使网站背景图片自动适应浏览器大小的方法...

    不管你怎么变化浏览器窗口大小,背景图始终会自动调节大小. 1 . 第一次方法: 我第一个想法是需要使用一个 css 背景图,如果这张图够大,就能填充整个屏幕.当浏览器窗口大小没有图片大时,它将自动隐藏 ...

最新文章

  1. linux c 编译时 include 和 链接库 文件路径指定
  2. dup、dup2、fcntl
  3. case函数,replace函数
  4. 跋山涉水——深入 Redis 字典遍历
  5. StackOverFlow优选的十条编程观点
  6. 算法面试中单链表专题
  7. GCD(Grand Central Dispatch)
  8. freenas安装mysql_FreeNAS Jail中安装MySQL数据库服务器
  9. Python 绘图利器 —— ggplot
  10. input 密码框调出手机的数字键盘
  11. 人工智能、区块链、算法...这30个大数据热词你知道吗?
  12. presumably用法
  13. iframe和response.sendRedirect()跳转到父页面的问题
  14. Android视频直播推流的实现
  15. AccessController的doPrivileged使用
  16. d3d纹理过滤器配置
  17. Guitar Pro2023中文版本下载及简谱功能详细介绍
  18. 基于javaweb+SSM农产品水果店销售管理系统
  19. 使用Amazon SNS,发邮件
  20. (PTA)6-7 使用函数计算两个复数之积 (10分)

热门文章

  1. auuc 评估指标_分类之性能评估指标
  2. rust熔炉怎么带走_Rust游戏中12个实用小技巧,包含无伤下坠、直梯爬楼
  3. OpenCV中的二进制鲁棒独立基本特征——BRIEF
  4. 使用Python,OpenCV进行图像哈希
  5. Python Qt GUI设计:窗口布局管理方法【强化】(基础篇—6)
  6. opencv阈值分割类型
  7. Linux那些事儿之我是Sysfs(9)sysfs文件系统模型
  8. Linux那些事儿之我是Sysfs(6)文件系统
  9. HDU - 3183 A Magic Lamp 线段树
  10. 奇葩错误 WIFI搜不到、无线网卡连接不上