• 给基于对话框的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

  • 相关阅读:
    [CQOI2006]凸多边形
    NOIP后省选集训前文化课划水记
    FFT字符串匹配
    ghj1222的代码规范
    博弈论
    P1350 车的放置
    P2110 欢总喊楼记
    虫食算
    3192: [JLOI2013]删除物品
    逛公园
  • 原文地址:https://www.cnblogs.com/arxive/p/11748251.html
Copyright © 2020-2023  润新知