MFC界面字符串显示的有关问题
MFC界面字符串显示的问题
自定义了一个消息,像界面的某一个edit发送字符串并显示
PostMessage是这样写的:
strMessage是TCHAR类型的
事件处理是这样写的:
但是这时候的strMessage已经是不是以前的字符串了,成了乱码,例如:”Online“变成了”ō䠄i“ 显示出来也不对了
请问这是什么原因?
项目使用的是 Use Unicode Character Set
谢谢了 - -|
------解决思路----------------------
项目设置中不要使用 Unicode, 用这个编码太麻烦
------解决思路----------------------
你给其他窗口发送了一个字符串指针,不是字符串啊,你得new 一个字符串,并发送这个指针,接受窗口使用完后delete掉就行了
。
------解决思路----------------------
这种情况最好使用SendMessage来发送,因为PostMessage把消息放到消息队列就返回了,等到处理这个消息的时候,局部变量strMessage已经被销毁了。如果非要用PostMessage的话,要么就把strMessage搞成CxxDlg的成员变量或全局变量,要么就用2楼的方法,TCHAR *strMessage = new TCHAR[100];,然后进行消息处理时delete
------解决思路----------------------
Handle to the window whose window procedure is to receive the message. Two values have special meanings.
给edit发消息为什么是m_pMainWnd->GetSafeHwnd()?
自定义了一个消息,像界面的某一个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
谢谢了 - -|
------解决思路----------------------
项目设置中不要使用 Unicode, 用这个编码太麻烦
------解决思路----------------------
你给其他窗口发送了一个字符串指针,不是字符串啊,你得new 一个字符串,并发送这个指针,接受窗口使用完后delete掉就行了
。
------解决思路----------------------
这种情况最好使用SendMessage来发送,因为PostMessage把消息放到消息队列就返回了,等到处理这个消息的时候,局部变量strMessage已经被销毁了。如果非要用PostMessage的话,要么就把strMessage搞成CxxDlg的成员变量或全局变量,要么就用2楼的方法,TCHAR *strMessage = new TCHAR[100];,然后进行消息处理时delete
------解决思路----------------------
Handle to the window whose window procedure is to receive the message. Two values have special meanings.
给edit发消息为什么是m_pMainWnd->GetSafeHwnd()?