MFC为控件添加背景图片

这篇具有很好参考价值的文章主要介绍了MFC为控件添加背景图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、 添加选择Bitmap导入图片,图片文件最好放在项目res目录中,同时是BMP格式。上传后的图片在资源视图,命名为IDB_BITMAP_M_BACK。

2、在cpp的C***Dlg::OnPaint()函数下添加如下代码

void C***Dlg::OnPaint()
{
	CPaintDC dc(this); // device context for painting
	// TODO: 在此处添加消息处理程序代码 
		
	//获取控件在对话框上的位置,*IDC_STATIC_ENERGY_S为需添加背景图片的控件*
	CRect rect;
	GetDlgItem(IDC_STATIC_ENERGY_S)->GetWindowRect(&rect);//获取控件的屏幕坐标
	ScreenToClient(&rect);	//转换为对话框上的客户坐标
	
	CBitmap   bmpBackground;    
	bmpBackground.LoadBitmap(IDB_BITMAP_M_BACK);  //加载位图 
	BITMAP   bitmap;    
	bmpBackground.GetBitmap(&bitmap);   	//生成BITMAP
	
	CDC   dcMem;    
	dcMem.CreateCompatibleDC(&dc);    //选入DC 
	CBitmap   *pbmpOld=dcMem.SelectObject(&bmpBackground);   
	
	 //用客户区的DC绘制所生成的BITMAP,并适应为窗口大小 
	dc.StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);  
	
	// 不为绘图消息调用 CDialogEx::OnPaint()
}

如果是主程序的cpp文件中已有OnPaint函数,则修改else部分代码:

void C***Dlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); // 用于绘制的设备上下文

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// 使图标在工作区矩形中居中
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// 绘制图标
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
	//	CDialogEx::OnPaint(); //注释该语句:防止重复调用重画函数
		***在这里添加上面那段代码***
	}
}

运行效果:
MFC为控件添加背景图片,vs2010,mfc,C++,mfc,c++,VS2010文章来源地址https://www.toymoban.com/news/detail-657651.html

到了这里,关于MFC为控件添加背景图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 添加背景图片画图matlab

    clear clc close all cd(\\\'C:UserswindDesktop\\\') ha=axes(\\\'units\\\',\\\'normalized\\\',\\\'position\\\',[0 0 1 1]); uistack(ha,\\\'down\\\') II=imread(\\\'PP.png\\\'); image(II) colormap gray set(ha,\\\'handlevisibility\\\',\\\'off\\\',\\\'visible\\\',\\\'off\\\'); x=-pi:0.1:pi; y=x.*sin(x.*cos(x)).*tan(x); plot(x,y,\\\'LineWidth\\\',2) set(gca,\\\'color\\\',\\\'none\\\') %这里以前自己没有注意

    2024年04月09日
    浏览(45)
  • pygame如何添加背景图片

    Pygame可以使用pygame.image模块来添加背景图片,方法如下: 使用pygame.image.load( )加载图片; 使用pygame.transform.scale( )缩放图片; 使用pygame.display.set_mode( )创建一个新的显示窗口; 使用pygame.display.get_surface( )获取窗口表面; 使用pygame.display.update( )更新窗口表面; 使用pygame.display

    2024年02月11日
    浏览(51)
  • 给vue的页面添加背景图片

    1.在tempalate下面建设两个div,两个div建设在同一个div内 2.在第一个div内添加一个图片 img   :src=\\\"imgSrc\\\" width=\\\"100%\\\" height=\\\"100%\\\" alt=\\\"\\\" / 3.js里面定义图片的返回路径 在data {return内}因为存放路径没办法读取所以就 把类型写为require imgSrc:require( \\\'../../assets/images/bg2.jpg\\\' ) 4.给他俩添加styl

    2024年02月11日
    浏览(48)
  • 如何在Qt Desginer中设置背景图片,且不覆盖其它控件

    正常情况,我们直接通过在样式表里设置背景图片会出现背景图片覆盖其它控件的情况,比如下面操作: 首先右击空白处,点击改变样式表。 然后选择background-image 然后点击铅笔图标 之后我们要先添加前缀,也就是我们的项目名,比如我的这个项目名为Snake,那就添加一个名

    2024年02月03日
    浏览(43)
  • MFC 自定义控件添加 tip

    一、要求 1. 自定义 tip 提示并实时提示,跟随鼠标移动 2. 避免重复刷导致 tip 闪烁 3. picture 控件添加自定义变量 二、tip 涉及 2.1 CMFCToolTipCtrl、CMFCToolTipInfo - 示例:https://www.cnblogs.com/kuaixue/p/13723093.html 2.2 CToolTipCtrl - 示例:https://www.cnblogs.com/htj10/p/11704225.html 三、分析 3.1 对操作

    2024年01月18日
    浏览(37)
  • vs2017 MFC使用TEECHART 控件遇到的问题

    teechart 安装 《TeeChart安装、注册和使用》_GodLei1995-CSDN博客_teechart控件下载 MFC绘制图表《TeeChart安装、注册和使用》_qq_39851127的博客-CSDN博客

    2024年02月07日
    浏览(58)
  • Java的GUI(Swing)添加背景图片

    众所周知,在Java中GUI的各种都是需要自己编写的,然后在添加背景图片的时候有时候会覆盖其他组件,所以下面具体讲述怎么插入背景图片,并且不覆盖。 直接调用以下方法即可,记得方法中的图片路径需要修改 将对应的组件设置成透明即可,如下示例 我的具体界面如下

    2024年02月12日
    浏览(47)
  • 锐化多个视频的同时轻松快速批量添加上背景图片的教程

    在日常生活中,我们可能经常需要给一些视频添加背景图。但是,这并不是一项简单的任务,需要花费大量的时间和精力。那么,有没有一种简单的方法可以批量添加背景图到视频呢?答案是肯定的。下面,我们就来介绍一种简单易行的操作方法。 首先,我们需要打开软件的

    2024年02月07日
    浏览(53)
  • element-ui的 Dialog 对话框添加背景图片

    效果展示

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包