给StatusBar发送消息,来更改状态栏的显示信息

 temp.Format("Hello world %d", count);
 szText = temp.GetBuffer(temp.GetLength());
 ::SendMessage(m_wndStatusBar, SB_SETTEXT, (WPARAM)0, (LPARAM)szText); // 第三个参数用来控制状态的第几栏(索引以0开始)
 temp.ReleaseBuffer(); // 在调用CString.GetBuffer()后,一般要调用CString.ReleaseBuffer()来释放空间

 

注意:上面的发送消息用了::SendMessage,如果改成::PostMessage将可能得到乱码。网上的解释是:

 

因为PostMessage只是把消息放入Queue中立即返回的,等你的消息开始被执行的时候,你的CString类的对象可能已被销毁了.

而Message( "你好! ")中的参数是个常量字符串,具有与程序一样长的生存期,所以不存在这个问题.

 

除了改成SendMessage外,还可以将字符串存放在全局变量中。

posted @ 2014-12-28 00:03  何人之名  阅读(227)  评论(0)    收藏  举报