关于消息传递的问题:SendMessage(hwnd,myMessage,(WPARAM)wParam,lParam)中wParam如果是CString数组,能不能传?如何接收?

wellin 2003-08-28 12:12:52
关于消息传递的问题:SendMessage(hwnd,myMessage,(WPARAM)wParam,lParam)中wParam如果是CString数组,能不能传?如何接收?
...全文
143 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kof99th 2003-08-28
  • 打赏
  • 举报
回复
把stringarray的指针传过去
UDX协议 2003-08-28
  • 打赏
  • 举报
回复
什么都可以,指针或其他什么。
yym314 2003-08-28
  • 打赏
  • 举报
回复
you can pass the pointer of the sting array!
papaya_stone 2003-08-28
  • 打赏
  • 举报
回复
http://search.csdn.net/expert/topic/50/5005/2002/6/9/790222.htm
cy214 2003-08-28
  • 打赏
  • 举报
回复
没试验过 不过我觉得应该可以 WPARAM对应的定义是unsigned int或者是unsigned long
在32位cpu的系统上都是一样的 和一个指针所占的字节数相同 你试试把你的CString数组的首地址作为WPARAM传过去 在消息响应函数中就可以得到数组的首地址了
IThurricane 2003-08-28
  • 打赏
  • 举报
回复
在不同进程里可以用:
CString strDataToSend = _T("This is a message to send");
COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = strDataToSend.GetLength();
SendMessage(WM_COPYDATA,(WPARAM)AfxGetApp()->m_pMainWnd->GetSafeHwnd(),(LPARAM)&cpd);
wellin 2003-08-28
  • 打赏
  • 举报
回复
关键是我不是在同一个进程中传递的,在接收消息方,只要将wParam转成CString *或者其他指针后,进行读取的时候,应用程序就报错,说该内存不能read?!!!
zhouyong0371 2003-08-28
  • 打赏
  • 举报
回复
看这个,呵呵。所以可以
_TCHAR ch[128]; // text buffer
::SendMessage (hWnd, WM_GETTEXT, 128, (LPARAM)ch);
volcary 2003-08-28
  • 打赏
  • 举报
回复
wParam是指针
在同一进程中可以直接传递
CString str="1234";
SendMessage(NULL,myMessage,(WPARAM)&str,lParam)中
\\\\\\\\\\\\\\\
ON_MESSAGE(myMessage,MyFuc)
\\\\\\\\\\\\\\\\\\\\\\
void MyFuc(LPVOID param)
{
CString * pstr=(CString *)param;
AfxMessageBox(*pstr);
}
wjun2000 2003-08-28
  • 打赏
  • 举报
回复
传指针,指针指向什么都可以

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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