在线程中向窗体传递一个字符串
char ch[20]="Hello World";
::PostMessageA(params->hWnd,WM_ADD,0,(LPARAM)ch);然后在消息相应函数中输出接受到的字符串
afx_msg int CThreadDlg::OnAdd(WPARAM wParam, LPARAM lParam){}怎么将LParam数据保存到一个数组中?
vs2010好像很麻烦如果传递CString串我也不会写,求帮忙??

解决方案 »

  1.   

    你的定义的数组是个局部变量,改用SendMessage
      

  2.   

    类似这样就可以了:UINT __cdecl ThreadProc(LPVOID lParam)
    {
    HWND hWnd = (HWND)lParam; CString strText(_T("Hello,World"));
    SendMessage(hWnd, WM_ADD, 0, (LPARAM)(LPCTSTR)(strText));
    return 0;
    }void CXXDlg::OnBnClickedOk()
    {
    // TODO: Add your control notification handler code here
    AfxBeginThread(ThreadProc, (LPVOID)GetSafeHwnd());
    }LRESULT CXXDlg::OnAdd(WPARAM, LPARAM lParam)
    {
    LPCTSTR pText = (LPCTSTR)lParam;
    AfxMessageBox(pText); return 0;
    }
      

  3.   

    来晚了,VisualEleven都说完了。
      

  4.   

    WPARAM wParam, LPARAM lParam这两个参数相当于指针地址。
    你指向什么都可以,获取的时候只要做下类型转换就行。