MFC怎么让图片不覆盖其他控件

工程里设置了一个覆盖整个用户区的图片控件作为背景图片,但是运行程序时其他控件就被遮住了,请问怎么能使其他控件显示出来

5个回答

对话框属性-》clip children 设置为 true即可

在你的OnPaint()里面加载背景图片,

 // TODO: Add your message handler code here
    CPaintDC  dc(this);   
    CRect  rect;   
    GetClientRect(&rect);   
    CDC  dcMem;   
    dcMem.CreateCompatibleDC(&dc);   
    CBitmap  bmpBackground;   
    bmpBackground.LoadBitmap(IDB_BITMAP4);  
    //IDB_BITMAP是你自己的图对应的ID
    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);

你试试

控件的层关系换一下可以不?如果不行那就做成透明控件

我自己想到了一个非常好的办法,在OnPaint的else里使用CImage类绘图,前面添加一个if语句,使它只执行一次。比如说这样
void CMFCApplication5Dlg::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
{
    if (sign)
    {
        CWindowDC dc(this);
        hDC = dc.GetSafeHdc();
        CImage im;
        im.Load(L"D:\\_赌桌.png");
        im.Draw(hDC, 0, 0, 1500, 1000);
        sign = false;
    }
}

}
这样的话背景只会在开始的时候绘制一次,就不会覆盖其他的东西。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
vc6.0mfc加载jpeg图片,但图片上有控件,移动窗口后,图片覆盖控件

vc6.0mfc中使用IPicture接口实现加载jpeg图片,但图片上有控件,移动窗口后,图片覆盖控件,怎么解决图片一直保持在控件之后呢?一下是源代码: 头文件: IStream *m_pStream; //定义流对象 IPicture *m_pPicture; //定义接口对象 OLE_XSIZE_HIMETRIC m_JPGWidth; //图像宽度 OLE_YSIZE_HIMETRIC m_JPGHeight; //图像高度 HGLOBAL hMem; //堆句柄 cpp文件: 该类构造函数下代码: CFile file; file.Open("收入支出详情1.jpg",CFile::modeReadWrite); DWORD len = file.GetLength(); hMem = GlobalAlloc(GMEM_MOVEABLE,len); LPVOID pData = NULL; pData = GlobalLock(hMem); file.ReadHuge(pData,len); file.Close(); GlobalUnlock(hMem); CreateStreamOnHGlobal(hMem,TRUE,&m_pStream); OleLoadPicture(m_pStream,len,TRUE,IID_IPicture,(LPVOID*)&m_pPicture); m_pPicture->get_Height(&m_JPGHeight); m_pPicture->get_Width(&m_JPGWidth); OnPaint函数下代码: m_pPicture->Render(GetDC()->m_hDC,0,0,(int)(m_JPGWidth/26.45),(int)(m_JPGHeight/26.45),0,m_JPGHeight,m_JPGWidth,-m_JPGHeight,NULL);

MFC窗口被覆盖后,窗口上按钮的图标消失了

问题1:MFC窗口上的MFCBUTTON按钮设置了ICON图标,在窗口被覆盖后,这些图标全部消失了,在鼠标滑过时会显示出来。问了度娘说是ONPAINT函数的问题,但这个函数我根本没有改动过啊。。而且,我还尝试在ONPAINT函数中设置按钮的ICON,仍然不行。求助! 问题2:我有2个tab控件,他们是嵌套关系,tab1包含tab2。如何做到在tab1的第1页单击一个按钮,修改tab2第2页的edit控件的值?各位大神如果有代码的话直接写代码吧,因为网上那些方法我都试过了,实在是自己搞不出来。求助!!

在mfc的picture控件中,如何在已有图片的基础上,加载第二张图片,只显示第二张,不显示第一张

![图片说明](https://img-ask.csdn.net/upload/201704/29/1493438404_675317.png) 不这样显示

MFC窗口被遮挡后,重绘时,控件没有完全显示出来啊!!

显示正常的图片: ![图片说明](https://img-ask.csdn.net/upload/201608/17/1471415922_320402.png) 在有其他本地窗口打开遮挡了后 ![图片说明](https://img-ask.csdn.net/upload/201608/17/1471415973_585108.png) 想问下这个怎么解决啊,怎么控件会消失不见了,没有显示出来啊!!!!

mfc中teechart 显示不了

我用mfc做界面,将Teechart控件拖入对话框窗口,第一个拖进去运行还正常,当拖入第二个Teechart时候运行时候就看不第二个,这是为什么?这个是运行前的: ![图片说明](https://img-ask.csdn.net/upload/201905/20/1558333716_859627.png) 这个是运行后: ![图片说明](https://img-ask.csdn.net/upload/201905/20/1558333764_650495.png) 第一个显示,第二个不显示。

MFC 在视频窗口上面画图

海康视频ocx开发 使用MFC进行开发是怎么在视频窗口上面就行画图? 我用一个窗口叠加在视频窗口上面化但是视频在播放的时候画图窗口就被视频窗口给挡住了。

VC++6.0 用MFC如何做一个按钮,按下后在对话框显示字符串,再按一下字符串消失?

![图片说明](https://img-ask.csdn.net/upload/201705/09/1494295392_210779.png) 就是在上述的界面中,按一下左边的按钮,就可以在各条线的旁边显示出数据,再按一下,数据消失,该怎么实现?

求助!MFC 单文档多视图 CEditView加载的背景图片被挡住的问题

貌似是加载的背景图片被输入的那一行的背景覆盖了。。 ![图片说明](https://img-ask.csdn.net/upload/201602/21/1456043684_585040.png) ![图片说明](https://img-ask.csdn.net/upload/201602/21/1456044114_59817.png) 如图,其中圈起来的就是CEditView,视图底部还能看见背景图片的一部分,但光标所在的那一行就没有图片的显示了,而且我如果按了回车换行,下面一行也会被覆盖。。以下代码。 ``` 视图类中相关变量: CEdit* m_pCtrlREdit;// 内嵌的CEditCtrl控件指针 CImage m_ImageLogo; // 图片 UINT widthPic, heightPic; // 图片的长宽 COLORREF cl; // 指定图片的透明色 void EditView::OnInitialUpdate() { //CEditView::OnInitialUpdate(); m_editFont.CreatePointFont(168, "宋体"); //设置字体 SetFont(&m_editFont); m_pCtrlREdit = &GetEditCtrl(); ASSERT_VALID(m_pCtrlREdit); LONG lStyle = GetWindowLong(m_pCtrlREdit->m_hWnd, GWL_EXSTYLE); // 保存CEditCtrl的窗口风格 lStyle |= WS_EX_TRANSPARENT; // CEditCtrl的窗口风格加入透明背景 SetWindowLong(m_pCtrlREdit->m_hWnd, GWL_EXSTYLE, lStyle); // 重设CEditCtrl的新窗口风格 m_ImageLogo.Load((CString)"H:\\2016寒假作业\\Test\\Test\\res\\titleBk.png"); if (m_ImageLogo.IsNull()) { CString szTemp; szTemp.Format(_T("错误!找不到%s!"), (CString)"H:\\2016寒假作业\\Test\\Test\\res\\titleBk.png"); MessageBox(szTemp); } else { widthPic = m_ImageLogo.GetWidth(); // 获取图片宽度 heightPic = m_ImageLogo.GetHeight(); // 获取图片高度 cl = RGB(255, 255, 255); // 指定透明色 } CString str = "H:\\2016寒假作业\\Test\\txt\\默认标题.txt"; ReadTitle(str); } BOOL EditView::OnEraseBkgnd(CDC* pDC) { CRect rect; GetClientRect(&rect); pDC->FillSolidRect(&rect, pDC->GetBkColor()); // 用原背景色刷一下背景,否则会把程序后面的统统看见,一团乱麻。此处可以pDC->GetBkColor()将替换自定义的颜色,如白色RGB(255,255,255) if (m_ImageLogo) { m_ImageLogo.TransparentBlt(pDC->m_hDC, 0 , 0, rect.Width(), rect.Height(), 0, 0, widthPic, heightPic, cl); // 帖图到CRichEditView中作为背景 } return FALSE; // 通知窗口不用重绘背景了,我们已经填充过了。 //return CEditView::OnEraseBkgnd(pDC); } ``` 还处在MFC的入门阶段,希望各位达人耐心讲解一下,感谢!

VC对话框程序子对话的onPain函数实现了画线,程序启动,子对话框的画的线没有显示出来?

这是一个VC/MFC基于对话框程序 ,主对话框有一块地方加载了一个子对话框,覆盖在主对话框上,子对话的onPain()函数实现了画线的操作, 当程序启动时,子对话框的画的线没有显示出来,为什么?????? 程序代码是这样的,主对话框的OnInitDialog( ) m_buyinDlg.Create(IDD_DIALOG_BUYIN, this); CRect rectDlg; GetDlgItem(IDC_PIC_MAIN)->GetWindowRect(rectDlg);//在主对话框放置一个图片控件,在这个图片控件加载子对话框 //该函数把屏幕上指定点的屏幕坐标转换成用户坐标。 ScreenToClient(rectDlg); //定位属性页 m_buyinDlg.MoveWindow(rectDlg);

C++ 透明窗体上的文字如何设置透明度?

C++ 透明窗体上的文字如何设置透明度?需要调用外部库还是有什么方法或者函数能够直接实现,如果实在图片上写文字确实能实现文字透明度但是无法实现鼠标穿透

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Linux 会成为主流桌面操作系统吗?

整理 |屠敏出品 | CSDN(ID:CSDNnews)2020 年 1 月 14 日,微软正式停止了 Windows 7 系统的扩展支持,这意味着服役十年的 Windows 7,属于...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

学习总结之HTML5剑指前端(建议收藏,图文并茂)

前言学习《HTML5与CSS3权威指南》这本书很不错,学完之后我颇有感触,觉得web的世界开明了许多。这本书是需要有一定基础的web前端开发工程师。这本书主要学习HTML5和css3,看...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

新一代神器STM32CubeMonitor介绍、下载、安装和使用教程

关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang最近ST官网悄悄新上线了一款比较强大的工具:STM32CubeMonitor V1.0.0。经过我研究和使用之...

记一次腾讯面试,我挂在了最熟悉不过的队列上……

腾讯后台面试,面试官问:如何自己实现队列?

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

冒泡排序动画(基于python pygame实现)

本项目效果初始截图如下 动画见本人b站投稿:https://www.bilibili.com/video/av95491382 本项目对应github地址:https://github.com/BigShuang python版本:3.6,pygame版本:1.9.3。(python版本一致应该就没什么问题) 样例gif如下 ======================= 大爽歌作,mad

Redis核心原理与应用实践

Redis核心原理与应用实践 在很多场景下都会使用Redis,但是到了深层次的时候就了解的不是那么深刻,以至于在面试的时候经常会遇到卡壳的现象,学习知识要做到系统和深入,不要把Redis想象的过于复杂,和Mysql一样,是个读取数据的软件。 有一个理解是Redis是key value缓存服务器,更多的优点在于对value的操作更加丰富。 安装 yum install redis #yum安装 b...

现代的 “Hello, World”,可不仅仅是几行代码而已

作者 |Charles R. Martin译者 | 弯月,责编 | 夕颜头图 |付费下载自视觉中国出品 | CSDN(ID:CSDNnews)新手...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

程序员毕业去大公司好还是小公司好?

虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。 大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。 目录: 技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办? 一、技术氛围 纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂? 而且众所...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

01、Java入门(Getting Started);02、集成开发环境(IDE);03、项目结构(Eclipse JavaProject);04、类和对象(Classes and Objects);05:词法结构(Lexical Structure);06:数据类型和变量(Data Type and Variables);07:运算符(Operators);08:控制流程语句(Control Flow Statements);

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

立即提问
相关内容推荐