一个主对话框上有两个子对话框,想让其中一个PostMessage给另外一个,怎样的到另外一个的句柄?

解决方案 »

  1.   

    主对话框创建子对话框的时候,保存他们的句柄,HWND A,HWND B
    如果要从A发送到B的话,就将B句柄传递到A类对象,然后根据A发送之
      

  2.   

    过程是这样的。  
    CDialog* chDlg1,chDlg2;  //父窗口的头文件
    分别new 1 和 2 分配给 chDlg1和chDlg2;
    然后分别createshowwindow后两个窗口显示。这样你就可以在1 或者 2 中调用GetParent()->chDlg1/chDlg2 来获得指针。
    同理,句柄就是记录两个HINSTANCE  在create时候赋值就可以了。。
      

  3.   

    GetParent()->chDlg1这一步error C2039: 'm_TREEDLG' : is not a member of 'CWnd'
      

  4.   

    代码贴出来看下,那个m_TREEDLG是什么。。  好象需要转换的吧,忘了。你贴出代码看一下吧。
      

  5.   

    主对话框声明两个public:TREEDLG、SHOW是CDIALOG派生的
    TREEDLG m_TREEDLG; //左边对话框实例
    SHOW m_SHOW; //右边对话框实例主对话框中的OnInitDialog()创建子对话对话框
    m_TREEDLG.Create(IDD_TREEDIALOG,this);
    m_TREEDLG.ShowWindow(SW_SHOW);m_SHOW.Create(IDD_SHOW,this);
    m_SHOW.ShowWindow(SW_SHOW);TREEDLG发送消息给SHOW,是在类成员函数中写的
    ::SendMessage(GetParent()->m_SHOW.m_hWnd,WM_SELECT,i,0);