如题,A与B对话框均是创建于一个主对话框上,属于两个子页面,现在想在A对话框中向B对话框发送消息并得到B对话框中某一控件句柄或都是返回该控件内容。

解决方案 »

  1.   

    既然是自定义消息,那么消息参数随便你怎么写,只要你自己心里清楚不就行了?
    例如,A给B发“1”,表示要获取B中Edit1中的内容;那么在B的消息响应函数中监测发过来的内容,如果等于1的话,将Edit1中的内容回传。其它类推。
      

  2.   

    在A对话框中:
    CTDlg* parent = (CTDlg*)GetParent();//CTDlg为A、B的父对话框
    CString szText;
    //下面的parent->dlgB->m_hWnd为B对话框的句柄
    ::SendMessage(parent->dlgB->m_hWnd,WM_MESSAGE,0,(LPARAM)szText.GetBuffer());在B对话框中的自定义消息WM_MESSAGE的处理函数中(假如返回B中EDIT控件内容):
    LRESULT CTest2::OnDealMessage(WPARAM wParam,LPARAM lParam)
    {
    CString strEdit;
    m_edit.GetWindowText(strEdit);
            lstrcpy((TCHAR*)lParam, strEdit);
            return 1;
    }