📄 subject_63918.htm
字号:
<p>
序号:63918 发表者:alang 发表日期:2003-12-07 17:24:26
<br>主题:为什么发送消息不能发送CString字符串的啊
<br>内容:看我的代码:<BR>我在一个对话框向父窗口发送字符串:<BR>void CXilieSelectDlg::OnOK() <BR>{<BR> CString str="My Message";<BR> GetParent()->PostMessage(WM_MY_XILIEDLG,0,(LPARAM)(LPCTSTR)str);<BR>}<BR>父窗口成功接收到消息<BR>LRESULT CSXBaohuoDlg::OnMyXilieDlg(WPARAM wParam,LPARAM lParam)<BR>{<BR> CString str=(LPCTSTR)lParam;<BR> MessageBox(str);<BR> return 0;<BR>}<BR>为什么str是“葺葺葺葺葺葺@”莫名其妙的东西出来?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:浩公 回复日期:2003-12-07 17:44:38
<br>内容:你这句 CString str="My Message" 定义了一个临时的变量 str<BR>这个值在函数结束时已经无效了。所以收到的是乱码。<BR><BR>可以改为 <BR>void CXilieSelectDlg::OnOK() <BR>{<BR> char * psz = new char[128] ;<BR> ZeroMemory(psz, sizeof(psz)) ;<BR> strcpy(psz, "My Message") ;<BR> GetParent()->PostMessage(WM_MY_XILIEDLG,0,(LPARAM)(LPCTSTR)str);<BR>}<BR>父窗口成功接收到消息<BR>LRESULT CSXBaohuoDlg::OnMyXilieDlg(WPARAM wParam,LPARAM lParam)<BR>{<BR> CString str=(LPCTSTR)lParam;<BR> MessageBox(str);<BR><BR> // 记住 ,要 delete <BR> delete []str ;<BR> return 0;<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -