欢迎来到天天文库
浏览记录
ID:6784479
大小:62.50 KB
页数:2页
时间:2018-01-25
《vc状态栏编程及状态栏有的栏文字不显示问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、其实很简单,状态栏编程一般步骤:1、在CStringTable中添加所需的字符串string,及所显示的标题(其实是为了后来更好地显示内容预留下空间)。2、在MainFrame.cpp中添加在1中所添加的字符串。staticUINTindicators[]={ID_SEPARATOR,//statuslineindicatorID_INDICATOR_CLOCK,//StringTable设置的字符串ID_INDICATOR_COIN,ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_
2、INDICATOR_SCRL,};其与m_wndStatusBar的联系通过这个函数来实现:m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)))。3、调用m_wndStatusBar.SetPaneText(1,s);来显示所需的内容,调用m_wndStatusBar.SetPaneInfo(m_wndStatusBar.CommandToIndex(ID_INDICATOR_CLOCK),ID_INDICATOR_C
3、LOCK,SBPS_POPOUT,50)设置所显示的格式。其具体关系如下图所示: 可能会遇到的问题即设置状态栏上的文字后不会显示原因分析:(1)、设置字体是在原有的大写与数字栏等上。这样只有在打开键盘的大写键或数字键时才会显示。因为大写栏与数字栏的设置是由系统自动完成的,只有在触发其相应的消息时,才会显示。(2)、自己新加的,确实不显示(有的显示,有的不显示,我遇到的是第二栏不显示)。原因是如果我们不为状态栏添加UPDATE的处理函数,MFC会自动禁止状态栏的该栏(pane)。为其相应栏添加UPDATE的
4、处理函数即可。例如:在MainFrm.h中添加afx_msgvoidOnUpdate1(CCmdUI*pCmdUI);在MainFrm.cpp中添加ON_UPDATE_COMMAND_UI(ID_INDICATOR_1(要显示字的栏),OnUpdate1)实现函数:voidCMainFrame::OnUpdate1(CCmdUI*pCmdUI){pCmdUI->Enable();}经过这些操作,便可解决状态栏,有的栏不显示的问题。
此文档下载收益归作者所有