现在有一个NEW出来的对话框,我想在这个对话框关闭的时候向对话框的父窗口发送一个消息,带一个double值和一个enum值。请问这个函数该怎么写GetParent->SendMessage(),后面的参数我就不知道怎么写的,还有在父窗口写一个什么消息映射能得到这个消息中的参数
谢谢@!

解决方案 »

  1.   

    sendmessage()中的HWND用父窗口的m_hWnd
    double 和 enum参数都可以转换成回调函数的wParam参数传出去,或者直接定义个全局变量赋值
      

  2.   

    这种参数传递不用消息传递吧。
    父窗口设一个接收参数的函数,GetValCDlgParent *pDlg=(CDlgParent *)GetParent();
    pDlg->GetVal(double,enum);
      

  3.   

    先自己定义一个消息 假设为 #define WM_MYMESSAGE WM_APP+10
      SendMessage(GetParent(),WM_MYMESSAGE,DWORD(你的信息值),DWORD(你的信息值));复杂数据传指针再强转(或提升): 
    struct a_t 

    int aa; 
    char ab; 
    }; a_t a; SendMessage(GetParent(),WM_MYMESSAGE,DWORD(&a), DWORD(0));
    在接受方也要定义同样的消息 #define WM_MYMESSAGE WM_APP+10  再在消息响应宏里面添加消息映射 比如:
    BEGIN_MESSAGE_MAP(CMonitorSysDlg, CDialog)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    //}}AFX_MSG_MAP
    ON_MESSAGE(WM_MYMESSAGE,OnMymessage)  //注意这里就是添加消息映射
    END_MESSAGE_MAP()
    然后在.h文件中 声明函数原型
    afx_msg LRESULT OnMymessage(WPARAM wParam, LPARAM lParam);再在.cpp文件中实现OnMymessage函数,wParam和lParam参数就是你发消息传递过来的值,直接强制转换就行了