MFC中状态栏添加

首先我们创建一个简单的MFC对话框程序,这个创建过程就省略了。假设我的工程名为:CStatusBar1Dlg

测试环境:vc6.0环境下

下面介绍一下如何在对话框上添加状态栏:

第一步:

在CStatusBar1Dlg.h头文件中添加一个状态栏的变量:CStatusBar   m_wndStatusBar; //状态栏对象

第二步:

在字符串表中添加自己需要在状态栏中显示的ID值,详见截图:

第三步:

在CStatusBar1Dlg.h的class外面定义一个结构体:

//添加状态栏变量
static UINT indicators[]={IDS_STRING_CLIENT_CAPTION, IDS_STRING_VALUE, IDS_STRING_VERSION, IDS_STRING_DATE_CAPTION, IDS_STRING_DATE};

结构体里面的就是我们刚才在字符表中添加的ID。

第四步:

在OnInitDialog()方法中添加:

 
  1. CRect rect;

  2.  
  3. GetClientRect(rect);

  4.  
  5. if( !m_wndStatusBar.Create(this)|| !m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)) )

  6. {

  7. TRACE0("Can't create status bar\n");

  8. return FALSE;

  9. }

  10.  
  11. //添加状态栏信息

  12. m_wndStatusBar.MoveWindow(1,rect.bottom-20,rect.right,20);// 调整状态栏的位置和大小

  13. m_wndStatusBar.SetPaneInfo(1,m_wndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,30); 

 
  1. m_wndStatusBar.SetPaneInfo(2,m_wndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,170);

  2. m_wndStatusBar.SetPaneInfo(4,m_wndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,119);

  3.  
  4.  
  5. CString dateTime ;

  6. CTime t = CTime::GetCurrentTime();

  7. dateTime = t.Format("%Y-%m-%d %H:%M:%S");

  8. m_wndStatusBar.SetPaneInfo(4,m_wndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,119);

  9. m_wndStatusBar.SetPaneText(4, dateTime,TRUE);

猜你喜欢

转载自blog.csdn.net/xueluowutong/article/details/81285476