⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sy0601.htm

📁 c语言经典教程
💻 HTM
字号:
<html>
<HEAD>
<TITLE>Visual C++与计算机接口</TITLE>
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=gb2312" > 
</HEAD>
<body>
<font color="#0000FF">使用定时器</font>
<p>
(一)实验目的:<BR>
     使用定时器<BR><BR>
(二)定时器简介:<BR><BR>
  在Windows系统中,有各式各样的定时器,用来把CPU时间划分为片段,供不同的任务使用。<BR>
  在某些情况下,用户可以使用定时器而不是线程来调度事件。<BR><BR>
  简单的说,定时器的作用就是:用户设定定时器后,每隔设定的时间,系统都会发出一个WM_TIMER消息或调用相应的函数,直至用户取消定时器。<BR><BR>
  定时器是基于窗口的,同一个窗口可以设多个定时器,其时间可以不同,也可以相同。<BR>
  WM_TIMER的消息处理的优先级是很低的,除了WM_PAINT外,其他消息几乎都比WM_TIMER高。<BR>
  另外,定时器不是中断,它不能中断其他事件的处理,不能中断其他函数的执行。<BR>
  也就是说,WM_TIMER的消息处理函数的执行一定是在其他函数的外面,不可能利用定时器来改变某个正在执行的函数的行为。<BR><BR>
  使用定时器主要有两个函数:<BR>
   ·SetTimer( nIDEvent, nElapse, lpFunc )<BR>
   ·KillTimer( nIDEvent )<BR>
  其中:nIDEvent是此定时器的ID,可以是任意正整数。<BR>
     nElapse是定时器的时间间隔。<BR>
     lpFunc是定时器的回调函数,通常设为NULL。<BR><BR>
(三)一个简单的例子:<BR><BR>
1、建立一个MFC应用程序。<BR>
2、在View类中加入WM_CREATE消息映射函数OnCreate(),并加入代码:<BR>
    SetTimer(100,100,NULL);<BR>
3、在View类中加入WM_TIMER消息映射函数OnTimer(),并加入代码:<BR>
    static int n=0;<BR>
    CClientDC dc(this);<BR>
    CString st;<BR>
    st.Format("%d",n++);<BR>
    dc.TextOut(10,10,st);<BR>
4、编译运行,查看结果。<BR><BR>
(四)一个动画的例子:<BR><BR>
1、建立一个MFC应用程序。<BR><BR>
2、下载<a href="anim.h">anim.h</a>和<a href="anim.cpp">anim.cpp</a>,并加入到新建的Project中。<BR>
  这两个文件用于管理图形和动画,主要工作是先利用MemDC将图形准备好,再在需要的时候BitBlt到DC中。<BR><BR>
3、在View类的头文件中添加:<BR>
    #include "anim.h"<BR><BR>
4、在View类中添加成员变量:<BR>
    class MAnimation *m_pAnimation;<BR><BR>
5、在View类中加入WM_CREATE消息映射函数OnCreate(),并加入代码:<BR>
    m_pAnimation = new MAnimation(m_hWnd);<BR>
    SetTimer(100,1,NULL);<BR><BR>
6、在View类中加入WM_TIMER消息映射函数OnTimer(),并加入代码:<BR>
    RECT rcClient;<BR>
    GetClientRect(&rcClient);<BR>
    m_pAnimation->AnimateShape(rcClient);<BR><BR>
7、在View类中加入WM_SIZE消息映射函数OnSize(),并加入代码:<BR>
    m_pAnimation->SetSize(m_hWnd, nType, cx, cy);<BR>
    Invalidate();<BR><BR>
8、编译运行,查看结果。<BR><BR>
  以上步骤即为:<BR>
   ·在View类中定义一个MAnimation指针<BR>
   ·在OnCreate函数中创建MAnimation对象,并开启定时器<BR>
   ·在OnTimer函数中调用MAnimation的函数绘制图形<BR>
   ·在OnSize函数中调用MAnimation的函数改变图形的大小<BR>
   ·还可以定义函数并调用MAnimation的函数改变图形的颜色、速度等<BR><BR>
  定时器控制进程以钟表的工作模式运行。每过一定时间,定时器就从CPU那里获得控制,当预定的任务完成之后就放弃控制。<BR>
  若应用程序需要更为复杂的调度方式,就应该使用线程。<BR><BR>
  <a href="l0601.exe">执行文件示例</a>
</p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -