最近做MFC对话框工程 用到全屏刷新图片的功能,由于功能实现比较简单,便使用CImage类配合定时器制作,下面贴上实现方式:

增加消息响应事件:

//在对话框属性的消息中 添加WM_PAINT与WM_TIMER
//消息响应函数原型
afx_msg void OnPaint();
afx_msg void OnTimer(UINT_PTR nIDEvent);

增加初始化函数:

//在对话框属性的重写中 添加OnInitDialog
//初始化函数原型
virtual BOOL OnInitDialog();

.h文件定义:

//获取图片路径 这里用CString数组保存多张图片路径
bool GetPath(CStringArray & StrPath);
//保存图片的路径
CStringArray m_StrPath;
//记录当前加载哪张图片
int m_nNum;

.cpp文件实现:

//首先在OnInitDialog()函数中添加图片计数的初始化、图片路径以及启动定时器
BOOL CTestSTLFileDlg::OnInitDialog()
{m_nNum = 0;//全屏显示ShowWindow(SW_MAXIMIZE);//获取图片路径GetPath(m_StrPath);//启动定时器SetTimer(1,1000,NULL);return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}//在OnPaint()函数的else 中添加图片绘制部分
void CTestSTLFileDlg::OnPaint()
{
if()//主对话框中自动生成,如果是子对话框 直接拷贝下面else内的代码就行
{
}
else
{CPaintDC dc(this); // 用于绘制的设备上下文CRect _GetGroup;this->GetWindowRect(_GetGroup);CImage image;  //这里用了2张图片做演示image.Load(m_StrPath.GetAt(m_nNum++ %2));                  image.Draw(dc.GetSafeHdc(),_GetGroup.left,_GetGroup.top,_GetGroup.right,_GetGroup.bottom);if (!image.IsNull()){image.Destroy();}CDialogEx::OnPaint();
}
}//获取图片路径函数
bool CTestSTLFileDlg::GetPath(CStringArray & StrPath)
{TCHAR strTemp[MAX_PATH];GetCurrentDirectory(MAX_PATH,strTemp);//测试增加2张图片for (int i = 0;i < 2;i++){CString str;str.Format(_T("%s\\res\\test%d.png"),strTemp,i + 1);//保存图片路径StrPath.Add(str);}return true;
}//定时器函数
void CTestSTLFileDlg::OnTimer(UINT_PTR nIDEvent)
{// TODO: 在此添加消息处理程序代码和/或调用默认值if (1 == nIDEvent){//重绘图片Invalidate(TRUE);}CDialogEx::OnTimer(nIDEvent);
}//在析构函数或者退出函数中释放定时器
CTestSTLFileDlg::~CTestSTLFileDlg()
{KillTimer(1);
}

到这里对话框动态刷新图片功能基本完成,剩下还需要在主类(与工程名相同的类)中增加GDI启动函数;

主类的.cpp中增加:

 //全局变量ULONG_PTR m_gdi;//构造函数或者初始化函数中增加GDI启动
CTestSTLFileApp::CTestSTLFileApp()
{// 将所有重要的初始化放置在 InitInstance 中Gdiplus::GdiplusStartupInput out;Gdiplus::GdiplusStartup(&m_gdi,&out,NULL);}//在析构函数或者退出函数中释放GDI内存
CTestSTLFileApp::~CTestSTLFileApp()
{Gdiplus::GdiplusShutdown(m_gdi);
}

MFC对话框动态刷新图片(仿照全屏屏保)相关推荐

  1. MFC对话框背景图片的设置

    MFC对话框背景图片的设置 1.插入一个Bitmap的资源图片,假设资源名称为:IDC_BITMAP1(一般默认的第一个BMP文件是它,接下来的为IDC_BITMAP2,以此类推) 2.在CXXXDi ...

  2. MFC 对话框背景图片

    在windows开发当中做界面的主要技术之一就是使用MFC,通常我们看到的QQ,360,暴风影音这些漂亮的界面都可以用MFC来实现.今天我们来说一下如何用MFC美化对话框,默认情况下,对话框的背景如下 ...

  3. MFC 对话框 背景图片 以及消除 字体重影 字体重叠

    [转载 ACM不挂科] http://hi.baidu.com/acmbuguake/item/380c1344605f243311ee1e74 很多人都想改变对话框的背景图,其实很简单,只需要一个函 ...

  4. 设置MFC对话框背景图片

    来源:http://zhidao.baidu.com/question/172230752.html?an=0&si=4 先在资源里导入你的位图,分配好ID号: 在OnPaint()函数中: ...

  5. MFC对话框显示图片(使用Picture控件)

    //************************************************************************************************** ...

  6. mfc 对话框 全屏_Web开发人员阅读列表:全屏对话框Web存储和语音API

    mfc 对话框 全屏 The modern JavaScript specification is divided into a series of modules, which includes t ...

  7. 用css使用html设置背景图片自适应,CSS怎么设置背景图片自适应全屏?附源码!...

    不少同学在设置网站背景图片时会遇到这么一个问题:背景图片总是不能铺满整个屏幕,不是图片太小就是图片被过度放大,显得不太美观.那么 CSS 怎么设置背景图片自适应全屏呢?这篇文章告诉你. 实现效果: 源 ...

  8. 上传文件、视频、图片、全选、全不选、截屏直接粘贴图片

    上传文件.视频.图片.全选.全不选.截屏直接粘贴图片 控制器代码:ObUnitsController.php <?phpnamespace App\Admin\Controllers;use A ...

  9. 全触屏智能之战 三星i908E对比iPhone 3G

    全触屏智能手机正在开始慢慢登上最新潮流手机舞台,在继苹果iPhone成功推出之后,不少大牌手机厂商也紧跟潮流,推出相类似的对抗机型.这些"影子"手机中也不乏精品之作,而且同苹果iP ...

最新文章

  1. IBS illustrator for the presentation and visualization of biological sequences 中山大学
  2. Oracle表里的照片怎么导出来,如何导出oracle数据库中某张表到excel_oracle数据库表格导出到excel...
  3. ls –al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段!
  4. ORA-07445导致实例崩溃的解决【The solution of instance crush by ORA-07445】
  5. Android PullToRefresh(下拉刷新)的使用详解
  6. 区县政府网站群建设新思路
  7. OpenJudge NOI 1.8 25:螺旋加密
  8. PHP中功能强大却少使用的函数 -- 为你提供更多的思路
  9. pytorch ——模型创建与nn.Module
  10. 自动化测试,从入门到跑路1
  11. PMOS 和 NMOS区别
  12. leetcode专题训练笔记
  13. 【配置】Spring Struts配置信息
  14. python selenium自动化框架_一文讲透!实现一个Python+Selenium的自动化测试框架如此简单!...
  15. Ubuntu 安装 GMSSL
  16. jsoniter与原生json对比
  17. 热血传奇之资源文件与地图的读取分析
  18. OSChina 周二乱弹 —— 好好告别啊!不要舌吻!
  19. 鲁大师11月新机排行:只有5款机型发布,OPPO撑起榜单
  20. 双硬盘双系统ArchLinux安装备忘录

热门文章

  1. 为什么我墙裂建议大家使用枚举来实现单例。
  2. 【专题二】应用号(小程序)开发教程首发第二弹!(0923)
  3. leetcode 300. 最长上升子序列
  4. Laya自动图集原理
  5. CentOS 7系统上部署Apache+PHP+MariaDB+xcache使用rpm,php module
  6. minSdkVersion、compileSdkVersion和targetSdkVersion
  7. 老牌社交网站Friends Reunited宣布关闭
  8. 实践:基于深度学习的卫星图像超分辨率处理技术(一)
  9. Centos 7编译安装 LAMP 环境
  10. Linux各个目录的作用及内容