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

  • 相关阅读:
    Python 集合
    Python sorted()
    CodeForces 508C Anya and Ghosts
    CodeForces 496B Secret Combination
    CodeForces 483B Friends and Presents
    CodeForces 490C Hacking Cypher
    CodeForces 483C Diverse Permutation
    CodeForces 478C Table Decorations
    CodeForces 454C Little Pony and Expected Maximum
    CodeForces 313C Ilya and Matrix
  • 原文地址:https://www.cnblogs.com/arxive/p/11748251.html
Copyright © 2011-2022 走看看