zoukankan      html  css  js  c++  java
  • 给基于对话框的MFC程序添加状态栏并实时显示时间

    转载自丝雪儿

    1.首先在string table 里添加两个字串,ID分别为IDS_INDICATOR_MESSAGE and IDS_INDICATOR_TIME

    2.在你的 dlg.h 类里面加个 CStatusBar m_bar;

    3.在dlg.cpp 开头加上

    static UINT indicators[] =

    {

     IDS_INDICATOR_MESSAGE,

     IDS_INDICATOR_TIME

    };

    4.OnInitDialog 里面加上

    m_bar.Create(this); //We create the status bar

    m_bar.SetIndicators(indicators,2); //Set the number of panes

    CRect rect;

    GetClientRect(&rect);

    //Size the two panes

    m_bar.SetPaneInfo(0,IDS_INDICATOR_MESSAGE, SBPS_NORMAL,rect.Width()-100);     

    m_bar.SetPaneInfo(1,IDS_INDICATOR_TIME,SBPS_STRETCH ,0);

    //This is where we actually draw it on the screen

    RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,    ID_INDICATOR_TIME);

    5.时间显示

    OnInitDialog 里面加 SetTimer(1,1000,NULL);

    为你的dlg类添加WM_TIMER的响应函数,在其中添加代码:

    CTime t1;

    t1=CTime::GetCurrentTime();

    m_bar.SetPaneText(1,t1.Format("%H:%M:%S"));

    CDialog::OnTimer(nIDEvent);

    这样添加的程序刚开始运行时在时间一栏中显示的是初始设置的字符,为了使程序在刚开始运行时就显示系统时间,可在m_bar.SetPaneInfo(1,IDS_INDICATOR_TIME,SBPS_STRETCH ,0);后添加如下代码:

    CTime t1;

    t1=CTime::GetCurrentTime();

    m_bar.SetPaneText(1,t1.Format("%H:%M:%S"));

    这样在程序刚启动时就会显示系统时间,然后实时更新。

    CSDN 于 2015-5-15

  • 相关阅读:
    pyzabbix 接口使用
    lvs使用进阶
    lvs基础
    linux服务基础之nginx配置详解
    linux服务基础之编译安装nginx
    iptables (二) nat & tcp_wrapper
    iptables (一) 主机防火墙和网络防火墙
    rsyslog及loganalyzer
    linux基础之Mini Linux制作
    linux基础之磁盘管理与文件系统
  • 原文地址:https://www.cnblogs.com/arxive/p/11748251.html
Copyright © 2011-2022 走看看