c/c++ vc 在mfc状态栏显示时间,在VC的控件中有个Status bar可以在窗体状态栏中添加日期和时间。其实通过简单的代码,你就能创建一个有时钟显示的状态栏,并且还能设置时钟栏的显示方式。举例如下:

首先,用MFC AppWizard按默认方式创建一个多文档界面的应用程序框架。

然后,编写以下代码:

1)在String Table中添加New String,在此定义为ID_INDICATOR_CLOCK,将

其Caption设为00:00:00(由于状态栏根据Caption确定时间窗格的缺省宽度,

使用此值将为时间的显示预留空间)。注意,本步操作时有两种方式:

一种建立新的String Table,并添加String;另一种则在原有String Table

中添加。当用后一种方式操作时,若完成后,时钟栏并不显示时间,则需要将此

New String在String Table中对应的Value值加1(可在resource.h中修改)。

2)在MainFrm.cpp中indicators声明处添加ID_INDICATOR_CLOCK,代码如下:

static UINT indicators[] =

{

ID_SEPARATOR,

ID_INDICATOR_CLOCK, //这里排列影响显示顺序

ID_INDICATOR_CAPS,

ID_INDICATOR_NUM,

ID_INDICATOR_SCRL,

};

这一步中ID_INDICATOR_CLOCK的插入位置将影响时间窗格在状态栏中的显示位置。

3)安装定时器:在MainFrm.cpp中OnCreate函数处添加代码如下:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{ ……

SetTimer(1,1000,NULL);//安装定时器,并将其时间间隔设为1000毫秒

return 0;

}

4)编写时间处理函数:利用ClassWizard为CMainFrame类加入WM_TIMER的消

息处理函数OnTimer,并添加代码如下:

void CMainFrame::OnTimer(UINT nIDEvent)

{// TODO: Add your message handler code here and/or call default

CTime time;

time=CTime::GetCurrentTime();//得到当前时间

CString s=time.Format("%H:%M:%S");//转换时间格式

m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIndex(ID_INDICATOR_CLOCK),s); //显示时钟

CFrameWnd::OnTimer(nIDEvent);}

5)销毁定时器:利用ClassWizard为CMainFrame类加入WM_CLOSE的消息处理

函数OnClose,并添加代码如下:

void CMainFrame::OnClose()

{// TODO: Add your message handler code here and/or call default

KillTimer(1);//销毁定时器

CFrameWnd::OnClose();}

最后,编译运行。

怎么样,你的时钟还不错吧。此外,你还可以通过调用CStatusBar的成员函数SetPaneStyle,SetPaneInfo来设置你的时钟栏的显示方式。例如:在MainFrm

.cpp中OnCreate函数处添加如下代码,即可将你的时钟栏pop out:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{

m_wndStatusBar.SetPaneInfo(m_wndStatusBar.CommandToIndex(ID_INDICATOR_CLOCK),ID_INDICATOR_CLOCK,SBPS_POPOUT,);
return ; }

  了解了如何添加时钟,添加别的窗格也是大同小异。比如动态显示鼠标提示,动态显示其它你所需要的提示等等,你可以随心所欲地定制自己的状态栏了

在MFC[转载]在MFC状态栏显示时间 状态栏显示时间的更多相关文章

  1. VS2010/MFC编程入门之三十八(状态栏的使用详解)

    上一节中鸡啄米讲了工具栏的创建.停靠与使用,本节来讲解状态栏的知识. 状态栏简介 状态栏相信大家在很多窗口中都能见到,它总是用来显示各种状态.状态栏实际上也是一个窗口,一般分为几个窗格,每个窗格分别用 ...

  2. 【转帖】linux date 显示指定时区的时间 借助TZ 环境变量 export TZ=Asia/Shanghai 或 America/New_York

    linux date 显示指定时区的时间 借助TZ 环境变量 export TZ=Asia/Shanghai 或 America/New_York 2015-02-10 10:58:22 youcha ...

  3. hwclock 显示或设置CMOS时间

    显示或设置CMOS时间 hwclock [options] 选项 -r               默认选项,读取并打印CMOS时间 -s               将CMOS时间设置为系统时间 - ...

  4. date 显示或设置系统时间和日期

    显示或设置系统时间和日期 date [options] [+format] date [options] [new date] date用来显示系统的时间和日期,超级用户可以使用date来更改系统时钟 ...

  5. DOS下如何同时显示时区日期和时间

    DOS下如何同时显示时区日期和时间 Echo %Date:~0,4%-%Date:~5,2%-%Date:~8,2% %Time:~0,2%:%Time:~3,2% 不显示周几 Echo %Date: ...

  6. Jsp开发自定义标签,自定义标签将字符串转成指定的时间格式显示

    本例以将 字符串格式的时间转成指定的时间格式显示. 第一步.定义一个标签处理程序类,需要集成javax.servlet.jsp.tagext.TagSupport,代码如下: import java. ...

  7. (Android学习系列)一,用按钮实现时间的显示

    我们先用AndroidStudio新建一个项目,选择空白模板,然后像其中拖入两个Button,将他们的id分别命名为btDate(显示日期),btTime(显示时间),他的模板XML代码很简单 < ...

  8. js获取当前日期时间同时显示星期

    JavaScript获取当前日期时间同时显示星期几,具体代码如下: <html> <head> <meta http-equiv="Content-Type&q ...

  9. js解决通过json传来的timestamp类型时间的显示问题

    [javascript] view plaincopyprint? function timeStamp2String(time){ var datetime = new Date(); dateti ...

随机推荐

  1. MVC5 Bundles发布到IIS失效问题解决方案

    MVC中Bundles可以提高代码的可重用性 我每个页面都需要用到这十几个JS+CSS 当我把MVC发布到服务器以后,Bundles中的JS和CSS会失效的时候 宝宝的心里是崩溃的.... 查了很多资 ...

  2. 使用Schtasks命令的注意事项

    在使用Schtasks命令时遇到了两个棘手的问题,耗费了一点时间,出现这个问题的时候查找网络资源也找不到真正的解决方案,最后还是自己悟出来了原因,所以在此把这些问题记录下来.如下: 服务器环境:win ...

  3. 1055: [HAOI2008]玩具取名 - BZOJ

    Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使 ...

  4. jquery取消事件冒泡和取消默认行为

    $('button').click(functon(e){ /*code*/ e.stopPropagation();//取消事件冒泡 e.preventDefault();//取消默认行为 })

  5. PAT-乙级-1012. 数字分类 (20)

    1012. 数字分类 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一系列正整数,请按要求对数字进 ...

  6. POJ2187Beauty Contest

    http://poj.org/problem?id=2187 题意 :有一个农场有N个房子,问最远的房子相距多少距离 . 思路 :凸包,旋转卡壳,通过寻找所有的对锺点,找出最远的点对. #includ ...

  7. 深入理解ClassLoader(五)—类的卸载

    原文地址:http://yhjhappy234.blog.163.com/blog/static/316328322011101413730764/?suggestedreading&wumi ...

  8. POJ1159——Palindrome(最长公共子序列+滚动数组)

    Palindrome DescriptionA palindrome is a symmetrical string, that is, a string read identically from ...

  9. 【iOS开发】iOS7 兼容及部分细节

    1:statusBar字体为白色 在plist里面设置View controller-based status bar appearance 为 NO:设置statusBarStyle 为 UISta ...

  10. mongoDB入门必读

    一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目. 由C++语言编写,旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品. ...