MFC界面字符串显示的问题

小鸟向前飞 2015-01-20 10:25:56
自定义了一个消息,像界面的某一个edit发送字符串并显示
PostMessage是这样写的:


PostMessage(m_pMainWnd->GetSafeHwnd(), WM_FOLDERMONITOR_MSG_LOGSERVERSTATUS, (WPARAM)strMessage, 0);


strMessage是TCHAR类型的

事件处理是这样写的:


TCHAR* strMessage = (TCHAR*)wParam;
if (!strMessage)
return 0;

m_editJobStatus.SetWindowText(strMessage);


但是这时候的strMessage已经是不是以前的字符串了,成了乱码,例如:”Online“变成了”ō䠄i“ 显示出来也不对了
请问这是什么原因?

项目使用的是 Use Unicode Character Set

谢谢了 - -|
...全文
193 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lafite_MoMo 2015-01-22
  • 打赏
  • 举报
回复
Handle to the window whose window procedure is to receive the message. Two values have special meanings. 给edit发消息为什么是m_pMainWnd->GetSafeHwnd()?
encoderlee 2015-01-20
  • 打赏
  • 举报
回复
这种情况最好使用SendMessage来发送,因为PostMessage把消息放到消息队列就返回了,等到处理这个消息的时候,局部变量strMessage已经被销毁了。如果非要用PostMessage的话,要么就把strMessage搞成CxxDlg的成员变量或全局变量,要么就用2楼的方法,TCHAR *strMessage = new TCHAR[100];,然后进行消息处理时delete
renwotao2009 2015-01-20
  • 打赏
  • 举报
回复
你给其他窗口发送了一个字符串指针,不是字符串啊,你得new 一个字符串,并发送这个指针,接受窗口使用完后delete掉就行了 。
此后三年 2015-01-20
  • 打赏
  • 举报
回复
项目设置中不要使用 Unicode, 用这个编码太麻烦

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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