我在往狀態欄中添加一欄,用於顯示時間,但代碼都正常,調試時也可以顯示,但在正常運行時就是不能顯示,最後在微軟的MSDN中查出問題。如果不能顯示就必須要添加相應的消息響應:
Example
//Sets and displays text for pane index 4 and id ID_PANE_FOUR
SetPaneText (4, "My New Status Bar Text", TRUE)
//UI handler in the message map updates the status bar text:
ON_UPDATE_COMMAND_UI ( ID_PANE_FOUR, OnUpdatePane )
//In the appropriate .cpp file add:
void CMyClass::OnUpdatePane (CCmdUI *pCmdUI) { pCmdUI->Enable (); }
比如要在狀態欄中添加一個顯示時間的信息:
一、在[String Table]中添加字符串 IDS_INDICATOR_TIME
二、在CMainFame.cpp中的indicator數組中添加 IDS_INDICATOR_TIME (假定我的框架類是CMainFrame)
三、在CMainFrame.h的消息映射中添加
afx_msg void OnUpdateTime(CCmdUI *pCmdUI);
四、在CMainFrame.cpp中的消息映射部分添加
ON_UPDATE_COMMAND_UI(IDS_INDICATOR_TIME,OnUpdateTime)
五、在CMainFrame.cpp中添加消息響應函數
void CMainFrame::OnUpdateTime(CCmdUI *pCmdUI)
{
pCmdUI->Enable();
}