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. IOS9中出现的错误

    1,Bitcode 错误提示: ld: '/Applications/Cocos/frameworks/cocos2d-x-3.8.1/prebuilt/ios/libcocos2d iOS.a(CC ...

  2. centos apache 隐藏和伪装 版本信息

    1.隐藏Apache版本信息 测试默认 apache 的状态信息[root@1314it conf]# curl -Is localhostHTTP/1.1 200 OKDate: Tue, 16 N ...

  3. Objective C 四舍五入,float处理

    NSLog(@"平方:%.f", pow(3,2) ); //result 9 NSLog(@"上舍入:%.f", ceil(3.000000000001)); ...

  4. 眼见为实(1):C++基本概念在编译器中的实现

    眼见为实(1):C++基本概念在编译器中的实现 对于C++对象模型,相信很多程序员都耳熟能详. 本文试图通过一个简单的例子演示一些C++基本概念在编译器中的实现,以期达到眼见为实的效果. 本文的演示程 ...

  5. 一张图让你看懂锻压、CNC、压铸、冲压四类工艺!

    (锻压+CNC+阳极.CNC+阳极.压铸+阳极.冲压+阳极手机外壳比较) 上图为一张雷达图,该图比较直观形象地描述了4大手机外壳工艺在6个维度(加工成本.CNC用量.加工周期.成品率.可设计性.外观质 ...

  6. MyBatis的分页操作(MySQL)

    1.无条件分页: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC ...

  7. Java API ——Arrays类

    1.Arrays类概述 · 针对数组进行操作的工具类. · 提供了排序,查找等功能. 2.成员方法 · public static String toString(int[] a):in[] a可以改 ...

  8. 初始化一台linux server来做项目管理和测试

    毕业以后很多没做过这么技术的事情了,不过今年要开始咯. Goal: 练手安装Nginx,并且配置不同的server,后端有Tomcat的(JIRA),有PHP(总得有的),还有Tornado和Node ...

  9. 再谈 retain,copy,mutableCopy(官方SDK,声明NSString都用copy非retain)

    之前一直以为retain就是简单的计数器+1,copy就是重新开辟内存复制对象: 其实不是这样,原来之前的自己独自徘徊于糊涂之中. (官方SDK,对NSString属性的定义都是用copy,而不是re ...

  10. C语言字符串函数

    strtok()     字符串分割函数strstr()     字符串查找函数 范例 #include <string.h> main() {     char * s = " ...