下面是书中的步骤,我照做了,运行后能显示出窗格,只是窗格始终是空白的,不会显示时间。请帮忙看一下问题出在哪里。谢谢。本人初学,如果是很简单的错误,请不要见怪。第一步,数组中加ID:(带“<----”的行是需要手工添加的。)
static UINT indicators[] = 
 { 
 ID_SEPARATOR, // status line indicator 
  ID_INDICATOR_CLOCK,  <----
 ID_INDICATOR_CAPS, 
 ID_INDICATOR_NUM, 
 ID_INDICATOR_SCRL, 
 }; 第二步:
    找到并双击名为String Table的字符串资源,打开字符串资源编辑窗口。接着在编辑窗口内按Insert键以插入一个新的字符串,请指定字符串的ID为ID_INDICATOR_CLOCK,内容为00:00:00。第三步:
    利用ClassWizard给CMainFrame类加入WM_TIMER的消息处理函数OnTimer和WM_CLOSE消息的处理函数OnClose,具体方法是在Class name栏中选择CMainFrame,在Object IDs栏中选择CMainFrame,在Messages栏中找到WM_TIMER和WM_CLOSE项,分别双击之然后按OK按钮退出ClassWizard。第四步,添加代码:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
 { 
 … 
 SetTimer(1,1000,NULL);  <---- 
 return 0; 
 } 
 void CMainFrame::OnTimer(UINT nIDEvent)  
 { 
 // TODO: Add your message handler code here and/or call default 
 CTime time;   <----
 time=CTime::GetCurrentTime();   <----
 CString s=time.Format("%H:%M:%S");   <----                
 m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIndex(ID_INDICATOR_CLOCK),s); <---
 CFrameWnd::OnTimer(nIDEvent); 
 } 
 void CMainFrame::OnClose()  
 { 
 // TODO: Add your message handler code here and/or call default  
 KillTimer(1);   <----
 CFrameWnd::OnClose(); 
 } 

解决方案 »

  1.   

    哥们,我试过了,你的程序是对的,没有任何问题呀。
    我啥都没改,显示正常。你重新编译一下,再看看。
      

  2.   


        真是怪了。我再试过几次。发现如果仅在向导生成的程序中加上上面的修改,就可以正常显示时间。而按照书上的步骤,使用向导之后再对工具栏、菜单等作些修改,再按上面贴出的步骤做一遍,就不会显示时间了。
        算了,先不去想它了。
        谢谢楼上的关注。