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

📄 用vc++在状态栏显示时钟.htm

📁 定时锁住鼠标键盘
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0055)http://www.ruijier.com/knowledge/c_c++/04072003/c55.htm -->
<HTML><HEAD><TITLE>用VC++在状态栏显示时钟</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2462.0" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId></HEAD>
<BODY>
<DIV align=center>
<CENTER>
<TABLE style="FONT-SIZE: 10pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体" height=709 
cellSpacing=0 cellPadding=0 width=600 border=0>
  <TBODY>
  <TR>
    <TD height=41>
      <P align=center><B><FONT color=#000080 
      size=3>用VC++在状态栏显示时钟&nbsp;</FONT></B> </P></TD></TR>
  <TR>
    <TD style="BORDER-BOTTOM: #008000 2px solid" vAlign=top align=right 
    height=20>作者:张剑寅</TD></TR>
  <TR>
    <TD vAlign=top 
      height=633><BR>在VC的控件中有个Status&nbsp;bar可以在窗体状态栏中添加日期和时间。其实通过简单的代码,你就能创建一个有时钟显示的状态栏,并且还能设置时钟栏的显示方式。举例如下:<BR>  首先,用MFC&nbsp;AppWizard按默认方式创建一个单文档界面的应用程序框架。<BR>  然后,编写代码:<BR>  1)在String&nbsp;Table中添加New&nbsp;String,在此定义为ID_INDICATOR_CLOCK,将其Caption设为00:00:00(由于状态栏根据Caption确定时间窗格的缺省宽度,使用此值将为时间的显示预留空间)。注意,本步操作时有两种方式:<BR>  一种建立新的String&nbsp;Table,并添加String;另一种则在原有String&nbsp;Table中添加。当用后一种方式操作时,若完成后,时钟栏并不显示时间,则需要将此New&nbsp;String在String&nbsp;Table中对应的Value值加1(可在resource.h中修改)。<BR>  2)在MainFrm.cpp中indicators声明处添加ID_INDICATOR_CLOCK,代码如下:<BR>  …<BR>  static&nbsp;UINT&nbsp;indicators[]&nbsp;=<BR>  {<BR>  ID_SEPARATOR,&nbsp;<BR>  ID_INDICATOR_CLOCK,<BR>  ID_INDICATOR_CAPS,<BR>  ID_INDICATOR_NUM,<BR>  ID_INDICATOR_SCRL,<BR>  };<BR>  …<BR>  这一步中ID_INDICATOR_CLOCK的插入位置将影响时间窗格在状态栏中的显示位置。<BR>  3)安装定时器:在MainFrm.cpp中OnCreate函数处添加代码如下:<BR>  int&nbsp;CMainFrame::OnCreate(LPCREATESTRUCT&nbsp;lpCreateStruct)<BR>  {&nbsp;……<BR>  SetTimer(1,1000,NULL);//安装定时器,并将其时间间隔设为1000毫秒<BR>  return&nbsp;0;<BR>  }<BR>  4)编写时间处理函数:利用ClassWizard为CMainFrame类加入WM_TIMER的消<BR>  息处理函数OnTimer,并添加代码如下:<BR>  void&nbsp;CMainFrame::OnTimer(UINT&nbsp;nIDEvent)&nbsp;<BR>  {//&nbsp;TODO:&nbsp;Add&nbsp;your&nbsp;message&nbsp;handler&nbsp;code&nbsp;here&nbsp;and/or&nbsp;call&nbsp;default<BR>  CTime&nbsp;time;<BR>  time=CTime::GetCurrentTime();//得到当前时间<BR>  CString&nbsp;s=time.Format(″%H:%M:%S″);//转换时间格式<BR>  m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIn-<BR>  dex(ID_INDICATOR_CLOCK),s);&nbsp;//显示时钟<BR>  CFrameWnd::OnTimer(nIDEvent);}<BR>  5)销毁定时器:利用ClassWizard为CMainFrame类加入WM_CLOSE的消息处理<BR>  函数OnClose,并添加代码如下:<BR>  void&nbsp;CMainFrame::OnClose()&nbsp;<BR>  {//&nbsp;TODO:&nbsp;Add&nbsp;your&nbsp;message&nbsp;handler&nbsp;code&nbsp;here&nbsp;and/or&nbsp;call&nbsp;default<BR>  KillTimer(1);//销毁定时器<BR>  CFrameWnd::OnClose();}<BR>  最后,编译运行。<BR>  怎么样,你的时钟还不错吧。此外,你还可以通过调用CStatusBar的成员函数SetPaneStyle,SetPaneInfo来设置你的时钟栏的显示方式。例如:在MainFrm&nbsp;.cpp中OnCreate函数处添加如下代码,即可将你的时钟栏pop&nbsp;out:<BR>  &nbsp;int&nbsp;CMainFrame::OnCreate(LPCREATESTRUCT&nbsp;lpCreateStruct)<BR>  &nbsp;{…<BR>  m_wndStatusBar.SetPaneInfo(m_wndStatusBar.CommandTo-<BR>  Index(ID_INDICATOR_CLOCK),ID_INDICATOR_CLOCK,SBPS_POPOUT,50);&nbsp;<BR>  return&nbsp;0;}<BR>  了解了如何添加时钟,添加别的窗格也是大同小异。这样,你就可以随心所欲地定制自己的状态栏了。&nbsp; 
    </TD></TR>
  <TR>
    <TD height=15></TD></TR></TBODY></TABLE></CENTER></DIV></BODY></HTML>

⌨️ 快捷键说明

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