139上位机VC MFC制作简单的图片屏保程序
139上位机VC MFC制作简单的图片屏保程序
功能展示
屏保就是用户长时间没有操作电脑时,电脑为保护屏幕在自动启动的一种程序,屏保的特点是程序全屏显示,然后显示一些效果如滚动图片;我们当前例程简单的实现一幅滚动图片的屏保,效果如图; 要点提示 屏保程序的全屏也就是充斥整个桌面,这种尺寸的大小 我们可以通过 GetSystemMetrics(SM_CXSCREEN)获取宽度 GetSystemMetrics(SM_CYSCREEN)获取高度;
屏保程序运行时不显示鼠标光标,我们也可以在程序运行几秒后用函数ShowCursor(FALSE)隐藏鼠标。当用户移动或点击鼠标时,再用函数ShowCursor(TRUE);显示鼠标光标; 实现功能 1.新建一对话框应用程序; 2.向工程加载一位图用于测试用,拖拽一图片控件,设置类型为位图,位图ID为刚添加图片ID,修改默认ID,再关联变量CStatic m_Picture; 3.添加变量private: int m_nXPos,m_nYPos; 用于设置图片显示的位置;并不OnInitDialog()中初始化 m_nXPos = 0;m_nYPos = 0; this->MoveWindow(0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN)); SetTimer(1,100,NULL); SetTimer(2,2000,NULL);//两秒后隐藏鼠标光标
4.添加定时器响应函数,实现图片的移动 - void CGkbc8Dlg::OnTimer(UINT nIDEvent)
- {
- if(1 == nIDEvent)
- {
- CRect rect,rc;
- GetWindowRect(rc);
- m_Picture.GetClientRect(rect);
- if(m_nXPos<rc.Width())
- if(m_nYPos<rc.Height())
- {
- m_Picture.MoveWindow(m_nXPos,m_nYPos,rect.Width(),rect.Height(),true);
- m_nXPos += 6;
- m_nYPos += 5;
- }
- else
- m_nYPos=0;
- else
- m_nXPos=0;
- }
-
复制代码- else if(2 == nIDEvent)
- {
- ShowCursor(FALSE);
- KillTimer(2);
- }
- CDialog::OnTimer(nIDEvent);
- }
- 添加鼠标点击消息,显示被隐藏的鼠标
- void CGkbc8Dlg::OnLButtonDown(UINT nFlags, CPoint point)
- {
- ShowCursor(TRUE);
- CDialog::OnLButtonDown(nFlags, point);
- }
复制代码
我们来演示下功能实现的整个过程
|