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、运行程序结果如下:

  • 相关阅读:
    某公司面试的SQL题目
    列存储索引
    JList动态添加元素
    Java中堆、栈、常量池等概念解析
    JButton大小设置问题?
    JAVA中定时器的使用
    线性表和链表的区别
    JTable表头显示问题以及如何让某行选中
    JPanel如何设置背景图片
    关于Scanner调用nextInt()异常try后不能二次输入问题
  • 原文地址:https://www.cnblogs.com/haoyuanyuan/p/3158277.html
Copyright © 2011-2022 走看看