消息函数SendMessage传递CString类型参数

 发送方
CString   str  =  _T ("123"); //注意变量的生存周期

SendMessage(m_hwnd,WM_MSG_USER,(WPARAM)&str,0);//阻塞至返回 可以不考虑变量的生存周期
PostMessage(m_hwnd,WM_MSG_USER,(WPARAM)&str,0); //发送后直接返回,必须考虑变量生存周期,防止变成野指针

接收方 

 CString* rmsg = (CString*)lParam;
 MessageBox(*rmsg);

MFC程序的方便之处CString功不可没,进程内微软好像是比较赞成父子窗口使用消息传递参数这种相对安全的方式。

不过由于定义函数都是LONG格式,想要传字符串只能传地址了。

你可能感兴趣的:(user,mfc,微软)