zoukankan      html  css  js  c++  java
  • MFC 学习 之 状态栏的添加

    1、首先声明一个
      CStatusBar  m_bar;//声明对象
    2、然后打开视图资源 String Table中添加两个字段值
      

    3、创建了两个字段值以后,在OnintDialog() 所在的 .cpp文件的最上面添加如下代码
      

    static BASED_CODE indicators[]={
        ID_INDICATOR_NISH,
        ID_INDICATOR_TIME
    };

    4、然后增加一个成员函数代码如下:

    BOOL CDormDlg::InitStatusBar()
    {
    	m_bar.Create(this);//创建状态栏
    	m_bar.SetIndicators((unsigned int *)indicators,sizeof(indicators)/sizeof(UINT));
    	
    	CRect rect;
    	GetClientRect(&rect);
    
    	//设置各栏长度
    	m_bar.SetPaneInfo(0,ID_INDICATOR_NISH,SBPS_NORMAL,rect.Width()-150);
    	m_bar.SetPaneInfo(1,ID_INDICATOR_TIME ,SBPS_STRETCH,0);
    
    	RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,ID_INDICATOR_REC);//自动填充用户区域的窗口
    	
    	m_bar.GetStatusBarCtrl().SetBkColor(RGB(180,180,180));//设置状态栏颜色
    	return TRUE;
    	
    }
    

    5、添加一个时间获取事件

    代码如下:

    void CDormDlg::OnTimer(UINT nIDEvent) 
    {
        // TODO: Add your message handler code here and/or call default
        if(nIDEvent == 100)
        {
            CTime t1;
            t1=CTime::GetCurrentTime();
        //    m_bar.SetPaneText(1,t1.Format("%Y-%M-%F:%H:%M:%S"));
                m_bar.SetPaneText(1,t1.Format("  %Y-%m-%d  %H:%M:%S"));
        }
    
        CDialog::OnTimer(nIDEvent);
    }

    5、代码调用在OnInitDialog()中添加

        InitStatusBar();
        SetTimer(100,1000,NULL );

    6、运行程序结果如下:

  • 相关阅读:
    广度优先搜索
    洛谷 P1126 机器人搬重物
    codevs 1058 合唱队形
    洛谷P1216 [USACO1.5]数字三角形 Number Triangles
    Codevs 1576 最长严格上升子序列
    跳马(Knight Moves), ZOJ1091, POJ2243
    洛谷 P1644 跳马问题
    NOI 2971 抓住那头牛
    NOI 2727 仙岛求药
    搜索与回溯算法
  • 原文地址:https://www.cnblogs.com/haoyuanyuan/p/3158277.html
Copyright © 2011-2022 走看看