关于消息参数的接收问题和一个关于函数的小问题

fangjl9 2014-08-19 10:59:06
1.消息参数一般是wparam和lparam。如果我想传递消息同时传入一个参数,例如发送一个Lbuttondowm消息,传入一个Cpoint* x。*x = (int,int)。LPARAM lp = (LPARAM)x;PostMessage(hWND,WM_LBUTTONDOWN,w,lp)。
这样传入应该没问题吧?那接收时是怎么接收?OnLbuttonDown这个响应函数参数只有UINT nFlags和CPoint point啊,不能直接接收吗?
2.类的对象虽然是资源不同,但实现起来在程序里实际上是共用一个函数对吧,用this指针区分,有个问题是,如果类中有fuc A,对象是b,c。我在b调用fucA时发一个消息给c,让c也调用fucA,因为函数共用不可能同时处理2个数据?似乎要出问题?
...全文
137 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Billow1234 2016-02-20
  • 打赏
  • 举报
回复
引用 2 楼 fangjl9 的回复:
[quote=引用 1 楼 happyparrot 的回复:] 1.想的挺多的。个人理解,一些已经封装好的消息,参数类型已经明确了,估计就不能乱传了,你得按规矩来。因为这些消息,windows自己也会处理,它得明确参数的意义,不能含糊。你可以响应这个消息,作些处理,但如果你不响应,这个消息其实也会有默认的动作的。 你说的LPARAM,那是自定义消息时用的,参数比较抽象,以便于你自已来约定实际的参数类型。这样的自定义消息,windows就只负责传递,不会做任何处理了,因为它不知道你的参数是什么玩意啊。 2。貌似你好像理解了类和对象的区别,可仔细看来,你还是不懂啊。函数不存在共用的问题,在形成对象后,是在不同的空间的。就好比人都会走路,但每个人的走的路自然是不一样的。走路就像函数,具体到每个对象,那是各走各的路了。
1.确实,我去试了下,window自己的消息虽然POST或SEND调用时lp和wp置0,但它传的时候是有值的,不能改,而且我把这值当作参数传出去也发生了错误。还是自己定义消息吧,这个我就会了。 2.我记得类的对象“共用”函数,才会有这个疑问,记得有看过说类的函数只有一份代码在内存里,里面隐含一个this,所以看起来是每个对象都有一个单独的成员函数。而例如函数有一个入口和一个出口,a对象调用,入口传入a的值,还没出出口之前我又发了消息让对象b也来进这个函数,感觉这个入口和出口之间应该被a的数据占用了,这时候b进去不会乱吗?您帮我理一理,我有点不明白[/quote] 楼主,第二点搞明白没,我这块也是不太明白?
快乐鹦鹉 2014-08-19
  • 打赏
  • 举报
回复
1.想的挺多的。个人理解,一些已经封装好的消息,参数类型已经明确了,估计就不能乱传了,你得按规矩来。因为这些消息,windows自己也会处理,它得明确参数的意义,不能含糊。你可以响应这个消息,作些处理,但如果你不响应,这个消息其实也会有默认的动作的。 你说的LPARAM,那是自定义消息时用的,参数比较抽象,以便于你自已来约定实际的参数类型。这样的自定义消息,windows就只负责传递,不会做任何处理了,因为它不知道你的参数是什么玩意啊。 2。貌似你好像理解了类和对象的区别,可仔细看来,你还是不懂啊。函数不存在共用的问题,在形成对象后,是在不同的空间的。就好比人都会走路,但每个人的走的路自然是不一样的。走路就像函数,具体到每个对象,那是各走各的路了。
阿呆_ 2014-08-19
  • 打赏
  • 举报
回复
代码只是指令而已。就好像你看操作说明书,难道你开始看说明书到一半的时候,别人也开始看同一版本的另一本书,你的说明书后面一半就变乱码了?
fangjl9 2014-08-19
  • 打赏
  • 举报
回复
引用 1 楼 happyparrot 的回复:
1.想的挺多的。个人理解,一些已经封装好的消息,参数类型已经明确了,估计就不能乱传了,你得按规矩来。因为这些消息,windows自己也会处理,它得明确参数的意义,不能含糊。你可以响应这个消息,作些处理,但如果你不响应,这个消息其实也会有默认的动作的。 你说的LPARAM,那是自定义消息时用的,参数比较抽象,以便于你自已来约定实际的参数类型。这样的自定义消息,windows就只负责传递,不会做任何处理了,因为它不知道你的参数是什么玩意啊。 2。貌似你好像理解了类和对象的区别,可仔细看来,你还是不懂啊。函数不存在共用的问题,在形成对象后,是在不同的空间的。就好比人都会走路,但每个人的走的路自然是不一样的。走路就像函数,具体到每个对象,那是各走各的路了。
1.确实,我去试了下,window自己的消息虽然POST或SEND调用时lp和wp置0,但它传的时候是有值的,不能改,而且我把这值当作参数传出去也发生了错误。还是自己定义消息吧,这个我就会了。 2.我记得类的对象“共用”函数,才会有这个疑问,记得有看过说类的函数只有一份代码在内存里,里面隐含一个this,所以看起来是每个对象都有一个单独的成员函数。而例如函数有一个入口和一个出口,a对象调用,入口传入a的值,还没出出口之前我又发了消息让对象b也来进这个函数,感觉这个入口和出口之间应该被a的数据占用了,这时候b进去不会乱吗?您帮我理一理,我有点不明白

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧