vs2010 单文档MFC 通过加载位图文件作为客户区背景
来源:互联网 发布:手机陀螺仪水平仪软件 编辑:程序博客网 时间:2024/05/29 14:43
实现效果:
这个其实是一个非常常见的功能,大家都会考虑给自己简单的工程做一个背景界面。其实只要在view类中重载OnEraseBkgnd()这个函数就好了。
代码如下:
BOOL CdddView::OnEraseBkgnd(CDC* pDC){ // TODO: 在此添加消息处理程序代码和/或调用默认值 CString string("b.bmp"); HBITMAP hbitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),string, IMAGE_BITMAP,1024,768, LR_CREATEDIBSECTION|LR_LOADFROMFILE); //VERY IMPORTANT:NOT CALL THE SUPER CLASS FUNCTION CPaintDC dc(this); if(hbitmap==NULL) return FALSE; CBitmap bitmap; bitmap.Attach(hbitmap); BITMAP bmp; bitmap.GetBitmap(&bmp); CDC memDc; memDc.CreateCompatibleDC(pDC); CBitmap* pOldBitmap = memDc.SelectObject(&bitmap); CRect rect; GetClientRect(&rect); pDC->SetStretchBltMode(COLORONCOLOR);//这个模式不设置的话会导致图片严重失真 pDC->StretchBlt(0,0,rect.Width() ,rect.Height(), &memDc,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY); memDc.SelectObject(pOldBitmap); memDc.DeleteDC(); //删除DC return TRUE; }
顺便给工程换个标题栏:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){ if( !CFrameWndEx::PreCreateWindow(cs) ) return FALSE; // TODO: 在此处通过修改 // CREATESTRUCT cs 来修改窗口类或样式 cs.style &=~FWS_ADDTOTITLE; cs.lpszName = _T("XXX系统"); return TRUE;}
加载位图时候有的格式可能还有点问题,下面是讨论贴:
http://bbs.csdn.net/topics/391027250?page=1#post-399164597
1 1
- vs2010 单文档MFC 通过加载位图文件作为客户区背景
- MFC加载位图背景
- MFC单文档调整客户区大小
- MFC加载位图文件
- VS2010/MFC 设置对话框客户区背景及客户区文本
- mfc在单文档客户区添加控件
- VS2008中MFC单文档显示位图
- VS2010 mfc 单文档写界面入门
- C++/MFC修行之路(7)MFC单文档程序调整客户区大小的方法
- 基于对话框的MFC程序加载位图为背景图案
- VS2010 MFC显示位图
- MFC单文档打开文件
- MFC单文档打开文件
- MFC单文档打开文件
- MFC单文档打开文件
- 通过加载位图资源来设置对话框背景
- 加载一张bmp图片作为MFC对话框的背景
- 加载一张bmp图片作为MFC对话框的背景
- 傻瓜教程:把iPhone程序连接真机调试
- H.图像匹配(安徽省2014年“京胜杯”大学生程序设计竞赛)
- Ruby中的反射(Reflection)應用實例
- 2840: 编程题AB-面粉质量差
- Linux下利用script命令录制并回放终端会话
- vs2010 单文档MFC 通过加载位图文件作为客户区背景
- 解析 ruby 全局變數
- gtk的国际化
- LocalFile,沙盒
- 一位网友的建议
- Hibernate学习记录1
- 艱難完成 nginx + puma 部署 rails 4的詳細記錄
- 欢迎使用CSDN-markdown编辑器
- ruby線程實現生產者消費者問題示例(隊列Queue實現線程同步)