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

今天在使用单文档程序时,弹出了一个新的对话框,由于是非模式对话框,当对话框结束后,需要根据一些消息传递参数到主窗体中

那么在对话框中使用了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;

}

             

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值