



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在对话框中设置背景的三种方法方法一:在OnPaint中StretchBlt具体是:注释掉CDialog:OnPaint()或放到结尾(原因何在呢?),并加入贴图代码voidCqqqqqDlg:OnPaint()if(IsIconic()CPaintDCdc(this);/devicecontextforpaintingSendMessage(WM_ICONERASEBKGND,reinterpret_cast(dc.GetSafeHdc(),0);/CentericoninclientrectangleintcxIcon=GetSystemMetrics(SM_CXICON);intcyIcon=GetSystemMetrics(SM_CYICON);CRectrect;GetClientRect(&rect);intx=(rect.Width()-cxIcon+1)/2;inty=(rect.Height()-cyIcon+1)/2;/Drawtheicondc.DrawIcon(x,y,m_hIcon);else/CDialog:OnPaint();/注释此句,如果不注释的话,就放到结尾,原因何在呢?/贴背景图片CPaintDCdc(this);CBitmapbmpBk;bmpBk.LoadBitmapW(IDB_BITMAP_tempbk);/m_bmpBK.LoadBitmapW(IDB_BMPBK);BITMAPbmpSize;bmpBk.GetBitmap(&bmpSize);/获取背景图片尺寸CRectrect;GetClientRect(&rect);/获取客户区尺寸CDCdcMem;dcMem.CreateCompatibleDC(&dc);dcMem.SelectObject(&bmpBk);dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bmpSize.bmWidth,bmpSize.bmHeight,SRCCOPY);/将背景图片拉伸或者压缩copy至客户区/贴背景图片执行效果截图如下:方法二:在OnEraseBkgnd中StretchBlt具体是:注释掉return CDialog:OnEraseBkgnd(pDC);直接返回true(为什么不能返回这个要返回true呢?),代码如下:BOOLCqqqqqDlg:OnEraseBkgnd(CDC*pDC)/TODO:Addyourmessagehandlercodehereand/orcalldefault/贴背景图片CBitmapbmpBk;bmpBk.LoadBitmapW(IDB_BITMAP_tempbk);/m_bmpBK.LoadBitmapW(IDB_BMPBK);BITMAPbmpSize;bmpBk.GetBitmap(&bmpSize);/获取背景图片尺寸CRectrect;GetClientRect(&rect);/获取客户区尺寸CDCdcMem;dcMem.CreateCompatibleDC(pDC);dcMem.SelectObject(&bmpBk);pDC-StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bmpSize.bmWidth,bmpSize.bmHeight,SRCCOPY);/将背景图片拉伸或者压缩copy至客户区/贴背景图片returntrue;/returnCDialog:OnEraseBkgnd(pDC);效果与方法一相同,图片就不贴了,参见上图。而且这里还有一个很有意思的现象,若在OnEraseBkgnd贴图, 在OnPaint()函数中不调用基类的OnPaint,即注释掉CDialog:OnPaint(),则将界面隐藏后再显示出来则控件全没了,只有对话框以及背景。如下图:原因见在OnPaint中必须调用一次BeginPaint和EndPaint,且也只能调用一次。方法三:在OnCtlColor中返回带有背景位图的画刷具体是:1、在头文件中定一个背景刷public:CBrushm_brushBk;2、在OnInitDialog中加入以下句/TODO:AddextrainitializationhereCBitmapbmp;bmp.LoadBitmap(IDB_BITMAP_tempbk);m_brushBk.CreatePatternBrush(&bmp);/m_brushBk.CreateSolidBrush(RGB(0,255,0);/用纯色作为背景bmp.DeleteObject();3、在OnCtlColor函数中返回背景画刷HBRUSHCXXXXXDlg:OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor)HBRUSHhbr=CDialog:OnCtlColor(pDC,pWnd,nCtlColor);/TODO:ChangeanyattributesoftheDChere/TODO:Returnadifferentbrushifthedefaultisnotdesiredif(pWnd=this)/this代表当前对话框窗口returnm_brushBk;returnhbr;效果如下图所示:注意这个函数里面的if判断,这个pWnd参数很关键。澳门新濠天地官网66我们看看,如果没有这个if判断,直接返回m_brushBk;会是什么结果呢,代码如下:HBRUSHCqqqqqDlg:OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor)HBRUSHhbr=CDialog:OnCtlColor(pDC,pWnd,nCtlColor);/TODO:ChangeanyattributesoftheDChere/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 古琴文化与演奏艺术教程书
- 小学三年级下册数学巩固练习计划
- 2025至2030中国自动滴漏式咖啡壶行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国腹水治疗行业产业运行态势及投资规划深度研究报告
- 2025至2030中国脱氢乙酸(DHS)行业产业运行态势及投资规划深度研究报告
- 2025至2030中国脂肪填充奶粉(FFMP)行业市场深度研究及发展前景投资可行性分析报告
- 2025至2030中国胶囊内窥镜和工作站行业产业运行态势及投资规划深度研究报告
- 2025至2030中国胃食管反流病药物及器械行业市场占有率及投资前景评估规划报告
- 2025至2030中国肥料喷射器行业产业运行态势及投资规划深度研究报告
- 2025至2030中国聚光类球面透镜行业发展研究与产业战略规划分析评估报告
- 朝花夕拾考试题及答案
- 高中坚持议论文范文7篇
- 羊水栓塞个案护理
- (外研版3起)英语五年级上册单词字帖书写练习(手写体)高清打印版
- 一例急性心肌梗死合并糖尿病酮症酸中毒患者的个案护理
- 胰岛素注射篇课件
- 生物安全自查表
- 广州小升初-学籍表打印版
- 天津市-解除劳动合同证明书
- 公司一年完税证明模板
- DB5306∕T 69-2021 果树主要实蝇害虫综合防控技术规程
评论
0/150
提交评论