是这样的
下面是一个线程里面的一句关键语句 , 按照数据给窗体发送消息
SendMessage(AfxGetMainWnd()->m_hWnd,WM_SEND_MESSAGE,NULL,(LPARAM)&s);
给主窗体发一个消息
主窗体处理
LRESULT CLineAge2Dlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
// TODO: Add your specialized code here and/or call the base class switch(message)
{
case WM_SEND_MESSAGE://自己定的消息
CString*pStr=(CString*)lParam;
AddMessage(*pStr);//给edit控件写数据

break;
}

return CDialog::WindowProc(message, wParam, lParam);
}
然后象这样我要向我的子窗体发送一个消息应该怎么样做是获得子窗体的句柄吗
应该怎么样做

解决方案 »

  1.   

    SendMessage(GetDlgItem(AfxGetMainWnd()->m_hWnd,IDD_DIALOGSELECT),
    WM_ROLEDIALOG_MESSAGE,NULL,(LPARAM)&s1);
    我发送了这个消息后 但是子窗体没有响应 但是主窗体响应了
    请高手看看是怎么不响应
      

  2.   

    发送消息到子窗口上去,这一点一定要做到.这样用.
    ::SendMessage(HWnd, WM_YOUR_MESSAGE, X,X);另外在子窗口类的实现文件中一定要声明消息映射,
    消息处理函数一定要实现. LPRESULT void theFunction( WPARAM, lPARAM);如果 子窗口是基于控件的, Notify 属性一定要选上.同时不要在主窗口类中添加处理控件事件的函数
      

  3.   

    -》SendMessage(GetDlgItem(AfxGetMainWnd()->m_hWnd,IDD_DIALOGSELECT),
    WM_ROLEDIALOG_MESSAGE,NULL,(LPARAM)&s1);
    我发送了这个消息后 但是子窗体没有响应 但是主窗体响应了
    请高手看看是怎么不响应
    当然了,你发送的消息是往父窗口发送的,当然会在父窗口中被接收取了。
      

  4.   

    SendMessage(GetDlgItem(AfxGetMainWnd()->m_hWnd,IDD_DIALOGSELECT),
    WM_ROLEDIALOG_MESSAGE,NULL,(LPARAM)&s1);
    着是发送到子窗口的我还没傻到发到哪个窗口不知道
    但是我还是傻不知道怎么发到子窗口
      

  5.   

    mingbao(★情已逝★) 
        ON_MESSAGE(WM_ROLEDIALOG_MESSAGE,OnLogRole)
     .cpp的定义 afx_msg LRESULT CPageSelect::OnLogRole(WPARAM w,LPARAM l)
    {
    CString*pStr=(CString*)l;
    SetDlgItemText(IDC_STATICNAME,*pStr);
    return TRUE;
    }.h中的声明 afx_msg LRESULT OnLogRole(WPARAM,LPARAM);
    那里出错了  我日 真郁闷我疯了