请教如何新建状态条?

Paradin 2008-07-24 04:17:27
想要控制状态栏里信息的显示。
使用下面的代码:
CMainFrame* pMain = (CMainFrame*)AfxGetMainWnd();
CStatusBar* pStatus = (CStatusBar*)(pMain->GetDescendantWindow(AFX_IDW_STATUS_BAR));
CString fmtString = " [" + ptreeNode->getTitle() + "] 更新完毕";
char* fmt = const_cast<char*>((const char*)fmtString);
if(pStatus!=NULL)
{
pStatus->SetPaneText(0,fmt);
pStatus->UpdateWindow();
}
结果到pStatus->SetPaneText(0,fmt);这一句抛异常。
这段代码在一个新建工程里测试无误。
但是现在做的这个工程在MainFrame里面内嵌了一个Frame,导致状态栏貌似难以控制。
现在想在内嵌的Frame里面创建一个状态栏,请教应该如何做?
...全文
116 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Paradin 2008-07-25
  • 打赏
  • 举报
回复
我发现不能用的问题是什么了,貌似是因为实在用来更新信息的线程里调用那个状态栏,而更新信息的线程不是UI线程,所以一运行就出错,郁闷~
sitych 2008-07-24
  • 打赏
  • 举报
回复
ls讲的不是lz说的情况
zhouzhenyan 2008-07-24
  • 打赏
  • 举报
回复
用MFC向导生成一个单文档的程序,然后看看MainFrm中是如何实现StatusBar的就知道了,在CMainFrame::OnCreate中。
Paradin 2008-07-24
  • 打赏
  • 举报
回复
加油顶起来,高手帮忙啊!
Paradin 2008-07-24
  • 打赏
  • 举报
回复
只是这样好像不行啊,开始就会出错,能不能说的再具体些?新手,麻烦高手了~
sinjimmyi 2008-07-24
  • 打赏
  • 举报
回复
我的 项目也碰到了相同的问题。
最开始只有一个FRAME的时候很正常
嵌套后就碰到LZ一样的问题了。
请楼上的说详细。。谢谢。。
cnzdgs 2008-07-24
  • 打赏
  • 举报
回复
不会创建?那你现在的状态栏是怎么来的?
在框架类里面定义CStatusBar m_StatusBar;
响应框架的WM_CREATE消息,在CFrameWnd::OnCreate(lpCreateStruct)之后,执行m_StatusBar.Create(this)。
Formular1 2008-07-24
  • 打赏
  • 举报
回复
看看MSDN的例子,例如CImage的例子,好多都有怎么用代码加状态栏。
Paradin 2008-07-24
  • 打赏
  • 举报
回复
呵呵,我新手不好意思,创建状态栏怎么用代码创建啊?不是只用创建一个CStatusBar的变量吧?
Paradin 2008-07-24
  • 打赏
  • 举报
回复
呵呵,我新手不好意思,创建状态栏怎么用代码创建啊?不是只用创建一个CStatusBar的变量吧?
sinjimmyi 2008-07-24
  • 打赏
  • 举报
回复
up.
cnzdgs 2008-07-24
  • 打赏
  • 举报
回复
创建状态栏的时候指定其父窗口为内嵌的Frame。你可以把CStatusBar定义为类的成员变量,用该变量来设置文字。

15,979

社区成员

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

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