在VC编程中,有时需要将一些信息显示在状态栏里,下面将在状态栏里添加信息的步骤整理如下:
1)
在资源Resource的StringTable中添加字符串标志,例如ID_ONMAP_CURRENT_LOCATION 61477 当前位置
2)
在MainFrm.cpp中indicators的定义中添加字符串标志
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_ONMAP_CURRENT_LOCATION, //添加部分
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
3)
在需要改变状态栏的地方添加
CString str;
CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
CStatusBar* pStatusBar = &(pMainFrame->m_wndStatusBar);
if(NULL != pStatusBar)
{
str.Format("longitude = %f latitude = %f ",dfXn,dfYn); //添加字符串的格式
CClientDC dc(this);
CSize sz=dc.GetTextExtent(str); //获得添加字符串的占的大小
pStatusBar->SetPaneInfo(1,ID_ONMAP_CURRENT_LOCATION,SBPS_NORMAL,sz.cx);//1为索引,ID //,样式,大小
pStatusBar->SetPaneText(1,str);
}