给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外,还可以将字符串存放在全局变量中。

浙公网安备 33010602011771号