setpanetext的问题

wudeshou82666 2009-12-09 09:10:17
我在资源string table里面添加
ID_PANE_FOUR "当前终端:"
然后再将之添加到初始化状态条的数组里面
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_PANE_FOUR,   //这里
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
}

CString strTemp ="任意";
((CMainFrame* )AfxGetMainWnd())->m_wndStatusBar.SetPaneText(((CMainFrame* )AfxGetMainWnd())-
>m_wndStatusBar.CommandToIndex(ID_PANE_FOUR),strTemp,true);


添加ID_PANE_FOUR的命令响应函数

void CMainFrame::OnUpdatePane(CCmdUI *pCmdUI)
{
pCmdUI->Enable();
}

能够创建ID_PANE_FOUR窗格成功,而初始化的字符串没有显示,后面手动更改的字符串也没能显示.求高手指点
谢谢!!!
...全文
226 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
togoblime 2009-12-09
  • 打赏
  • 举报
回复
MSDN上对SetPaneText的解释:
Remarks
After you call SetPaneText, you must add a UI update handler to display the new text in the status bar.

Example
Visual C++ Copy Code
//Sets and displays text for pane index 3 and id ID_INDICATOR_SCRL
m_wndStatusBar.SetPaneText(3, _T("My New Status Bar Text"), TRUE);

Visual C++ Copy Code
//UI handler in the message map updates the status bar text:
ON_UPDATE_COMMAND_UI(ID_INDICATOR_SCRL, &CMainFrame::OnUpdatePane)

Visual C++ Copy Code
void CMainFrame::OnUpdatePane(CCmdUI* pCmdUI)
{
pCmdUI->Enable();
}
wudeshou82666 2009-12-09
  • 打赏
  • 举报
回复
跟ON_UPDATE_COMMAND_UI(ID_INDICATOR_TIME, OnUpdatePane)有关系吗?
跟踪SetPaneText的返回值为真,即调用成功了的
谢谢
togoblime 2009-12-09
  • 打赏
  • 举报
回复
先看一下SetPaneText的返回值,有没有调用成功
还有ON_UPDATE_COMMAND_UI(ID_INDICATOR_TIME, OnUpdatePane)加了没有?
跟下面的代码对照一下:
http://www.codeproject.com/KB/statusbar/statusbar.aspx
wudeshou82666 2009-12-09
  • 打赏
  • 举报
回复
顶上一个!救命啊

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧