在程序b中我用如下程序发送数据
pWnd = FindWindow(NULL, "a");
ASSERT(pWnd);
char buf[3];
memset(buf, "ok", 2);
buf[2] = NULL;
pWnd->PostMessage(IDD_MYMESS, (WPARAM)&buf[0], 2);在程序a中在这个消息处理程序中收
LRESULT CADlg::GetMess(WPARAM wParam, LPARAM lParam)
{
char buf[3];
memcpy(buf, (char *)wParam, lParam);
AfxMessageBox(buf);
return 0;
}为什么我能收到lParam的大少,但却收不到"ok"呢
谢谢
谢谢
pWnd = FindWindow(NULL, "a");
ASSERT(pWnd);
char buf[3];
memset(buf, "ok", 2);
buf[2] = NULL;
pWnd->PostMessage(IDD_MYMESS, (WPARAM)&buf[0], 2);在程序a中在这个消息处理程序中收
LRESULT CADlg::GetMess(WPARAM wParam, LPARAM lParam)
{
char buf[3];
memcpy(buf, (char *)wParam, lParam);
AfxMessageBox(buf);
return 0;
}为什么我能收到lParam的大少,但却收不到"ok"呢
谢谢
谢谢
因为你发送的buf在目标窗口中不认识,所以不能得到
谢谢
在发送方:
ATOM attext = GlobalAddAtom(strMyText);
::SendMessage (pwnd,WM_MYMSG,(WPARAM)attext,0);在GetMess()中用如下方法:
char buf[1024];
ATOM atdb = wParam;
GlobalGetAtomName(atdb,buf,1024);
Str = buf;
GlobalDeleteAtom(atdb);
我这样做
::SendMessage(pWnd->m_hWnd, WM_COPYDATA, (WPARAM)attext, 0);
就不行