VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 630|回复: 5

新手提问:如何传递消息???画线传递什么消息

[复制链接]

3

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-1-21 08:40:01 | 显示全部楼层 |阅读模式
请哥哥门帮帮我这个新手.
我从串口接受数据(View类中),View中接受一个数据,向Dialog中发送一个消息,在Dialog中画一个点,以达到实时效果。
想知道:该发什么消息?怎么发?
对不起,学VC不长时间,不太懂。
求求大家帮帮忙,急死了。
回复

使用道具 举报

0

主题

57

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-1-31 13:54:01 | 显示全部楼层
消息可以自定义,WM_USER + X
回复

使用道具 举报

2

主题

19

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-1-31 14:18:01 | 显示全部楼层

定义消息名:
#define 消息名(如UWM_SEND_LINE)  (WM_APP + 0x100)

//接收消息窗口类
Class CMyDialog
{

proteted:
   afx_msg LRESULT [得到消息函数名](WPARAM,LPARAM);
   
}

//BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
        ON_MESSAGE(消息名,得到消息函数名)   
//END_MESSAGE_MAP()

//得到消息函数实体
LRESULT CMyDialog::得到消息函数名(WPARAM wParam,  LPARAM lParam)
{
         //这里只示例传来的是CPoint类型对象,如果是CRect等任意类型对象要变为
         //CRect *pRect =(CRect)wParam;  CRect m_rect = *pRect; ......
        LPCTSTR * pPoint = (LPCTSTR *)wParam;
        CPoint point1 =  *Point;   
         
        //poin1就是你要得到的点值
      
       //.....................................
         
        return 0;
}





CMyView::要传出点值的函数名()
{
  CPoint myPoint;  //还如 CRect myObj等
  ::SendMessage(对话框对象名.GetSafeHwnd(),消息名,(long)&myPoint, 0);
  //如果不好得到对话框对象名变量,可以向主框架窗体发送此消息接力一下即可,在主窗口下
//得到对话框对象变量应该容易吧
//   ::SendMessage(AfxGetMaiWnd()->GetSafeHwnd(),消息名,(long)&myPoint, 0);
}

回复

使用道具 举报

2

主题

19

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-1-31 15:00:02 | 显示全部楼层
代码中
LPCTSTR * pPoint = (LPCTSTR *)wParam;
应为
CPoint * pPoint = (CPoint *)wParam;
回复

使用道具 举报

3

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-2-1 12:18:01 | 显示全部楼层
感激涕零啊!谢谢您!感谢热心帮助我这种边学VC边做毕设来应付老师的菜鸟!
我马上回去试试。
还有两个月,毕设再做不出就惨了,除非花钱找人帮忙做了。。。
唉,后悔当初没好好学习啊。
真的很谢谢您,mystonelh!
回复

使用道具 举报

3

主题

9

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-3-5 14:45:01 | 显示全部楼层
好使,谢谢您
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表