为生存而奔跑

   :: 首页 :: 联系 :: 聚合  :: 管理
  271 Posts :: 0 Stories :: 58 Comments :: 0 Trackbacks

留言簿(5)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 319506
  • 排名 - 75

最新评论

阅读排行榜

评论排行榜

Here is how to add the current time to your status bar...

Step 1:

Derive a CMyStatusBar class from CStatusBar as follows:
//MyStatusBar.h:
//==============
class CMyStatusBar : public CStatusBar {
DECLARE_DYNCREATE(CMyStatusBar)
public:
CMyStatusBar();
~CMyStatusBar();
private:
CString m_strClockFormat;
public:
void SetClockFormat(LPCTSTR strClockFormat);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMyStatusBar)
//}}AFX_VIRTUAL
// Generated message map functions
//{{AFX_MSG(CMyStatusBar)
afx_msg void OnDestroy();
afx_msg void OnUpdateIndicatorTime(CCmdUI* pCmdUI);
afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////
//MyStatusBar.cpp:
//==============
#include "stdafx.h"
#include "MyStatusBar.h"
#include "Resource.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
IMPLEMENT_DYNCREATE(CMyStatusBar, CStatusBar)
BEGIN_MESSAGE_MAP(CMyStatusBar, CStatusBar)
ON_WM_CREATE()
ON_WM_DESTROY()
ON_UPDATE_COMMAND_UI(ID_INDICATOR_TIME, OnUpdateIndicatorTime)
END_MESSAGE_MAP()
CMyStatusBar::CMyStatusBar()
: CStatusBar()
, m_strClockFormat("%H:%M:%S")
{
}
CMyStatusBar::~CMyStatusBar() {
}
void CMyStatusBar::SetClockFormat(LPCTSTR strClockFormat) {
m_strClockFormat = strClockFormat;
}
int CMyStatusBar::OnCreate(LPCREATESTRUCT lpCreateStruct) {
// make sure time gets updated every second, even when idle
CStatusBar::OnCreate(lpCreateStruct);
SetTimer(ID_INDICATOR_TIME,1000,NULL);
return 0;
}
void CMyStatusBar::OnUpdateIndicatorTime(CCmdUI* pCmdUI) {
pCmdUI->Enable(true);
pCmdUI->SetText(CTime::GetCurrentTime().Format(m_strClockFormat));
}
void CMyStatusBar::OnDestroy() {
KillTimer(ID_INDICATOR_TIME);
ProgressDestroy();
CStatusBar::OnDestroy();
}
Step 2:

添加一个字符串资源,ID是ID_INDICATOR_TIME,值为HH:MM:SS


Step 3:

Add a new indicator pane called ID_INDICATOR_TIME to your list of indicator in your mainframe eg. this is my indicator list...
static const UINT indicators[] = {
ID_SEPARATOR,           // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
ID_INDICATOR_TIME,  // <-- new indicator pane
};

Step 4:

Replace all existing uses of CStatusBar in your app with CMyStatusBar - in particular, the member variable in your mainframe m_wndStatusBar;
posted on 2009-07-24 10:35 baby-fly 阅读(294) 评论(0)  编辑 收藏 引用 所属分类: MFC

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理