MFC 关于SendMessage 消息参数 传送字符串,结构体

来源:互联网 发布:师洋淘宝直播还骂人 编辑:程序博客网 时间:2024/06/05 09:38
今天在使用单文档程序时,弹出了一个新的对话框,由于是非模式对话框,当对话框结束后,需要根据一些消息传递参数到主窗体中那么在对话框中使用了SendMessage使用方法: GetParent()->SendMessage(WM_MYHIDE,WPARAM(TRUE),(LPARAM)relatedID.GetBuffer(20));当然该消息响应事件放在了MainFrame。*)若传送的一般参数 直接可用 wparam(para); BOOL isChange = (BOOL)wParam;*)若需要传递的是字符串:        CString relatedID = _T("123");        GetParent()->SendMessage(WM_MYHIDE,WPARAM(TRUE),(LPARAM)relatedID.GetBuffer(20));        reatedID.releaseBuffer();在消息响应端:        void CDrawProgramDoc::SetYcProperty(WPARAM wParam){CString str((TCHAR*)wParam);          }这里之所以用TCHAR ,是由于在vs2010 中吧,宽字符。*)传送结构体 :示例struct information{tagRelatedInfo *pointInfo;int pNum;int xStart;int xEnd;int yStart;int yEnd;}Info;Info.pointInfo = relatedPointInfo;Info.pNum = relatedNum;GetParent()->SendMessage(WM_MYCURVE,(WPARAM)isChanged,(LPARAM)&Info);以上tagRelatedInfo 是自己定义的一个结构体,如下:struct tagRelatedInfo{     CString pointID;    COLORREFF lColor;};消息响应函数中:  SetCurveProperty(WPARAM wParam,LPARAM lParam){                         struct information{tagRelatedInfo *pointInfo;int pNum;int xStart;int xEnd;int yStart;int yEnd;}*Info;Info = (information *)lParam;   //即可得到nowMap->m_relatedNum = Info->pNum;}