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

  • 相关阅读:
    课后总结
    构建之法阅读笔记01
    软件工程周总结02
    开课博客
    二维数组最大子数组和
    大二下周总结四
    大二下周总结三
    定义一个整型数组,返回该数组中子数组和的最大值
    软件工程开课
    定义一个数组返回最大子数组的值(1)
  • 原文地址:https://www.cnblogs.com/arxive/p/11748251.html
Copyright © 2011-2022 走看看