当我点击窗体上的一个按钮时,点击的消息是由系统发给窗体呢,还是直接发送给此按钮?还有一个问题是,系统是如何判断,点击是点在了窗体上还是按钮上的呢?谢谢大家 

解决方案 »

  1.   

    (1)同时发给了按钮,和窗体(通知消息)。(2)响应Click的是因为Button收到了WM_CLICK
      

  2.   


    有个问题,您在(1)中说   同时发给了按钮,和窗体(通知消息)。 应该是这两个控件都接收到了WM_CLICK,而又在(2)中说  响应Click的是因为Button收到了WM_CLICK,  (1)中不是说窗体也接收到了WM_CLICK吗
      

  3.   


    有个问题,您在(1)中说   同时发给了按钮,和窗体(通知消息)。 应该是这两个控件都接收到了WM_CLICK,而又在(2)中说  响应Click的是因为Button收到了WM_CLICK,  (1)中不是说窗体也接收到了WM_CLICK吗不是,窗口收到的是通知消息,不是单击。
      

  4.   


    有个问题,您在(1)中说   同时发给了按钮,和窗体(通知消息)。 应该是这两个控件都接收到了WM_CLICK,而又在(2)中说  响应Click的是因为Button收到了WM_CLICK,  (1)中不是说窗体也接收到了WM_CLICK吗不是,窗口收到的是通知消息,不是单击。请问这个通知消息和WM_CLICK有什么区别?这个通知消息是什么不是WM_CLICK吗?
      

  5.   


    窗口还能收到按钮的点击?那你说的通知消息,到底包含什么内容?

    win子窗口确实会向父窗口发送WM_COMMAND消息及WM_NOTIFY消息,但是VB6中,在内部已经被转换为事件,VB中的窗口是接收不到子窗口的通知消息的
      

  6.   

    只发给了系统,再有系统转发至窗口所在线程,再由线程取出消息发到窗口的 callback 过程系统内部维系着桌面区域逻辑记录,有个api: windowfrompoint ,从鼠标坐标获取控件句柄,这个api就可以实现你知道的功能,但系统内部应该是更为复杂的识别过程,而不是简单的 windowfrompoint
      

  7.   


    窗口还能收到按钮的点击?那你说的通知消息,到底包含什么内容?

    win子窗口确实会向父窗口发送WM_COMMAND消息及WM_NOTIFY消息,但是VB6中,在内部已经被转换为事件,VB中的窗口是接收不到子窗口的通知消息的知道就好。lz知道了么?
      

  8.   


    窗口还能收到按钮的点击?那你说的通知消息,到底包含什么内容?

    win子窗口确实会向父窗口发送WM_COMMAND消息及WM_NOTIFY消息,但是VB6中,在内部已经被转换为事件,VB中的窗口是接收不到子窗口的通知消息的知道就好。lz知道了么?.... 你看的书太浅显了,要么就看错了
      

  9.   


    窗口还能收到按钮的点击?那你说的通知消息,到底包含什么内容?

    win子窗口确实会向父窗口发送WM_COMMAND消息及WM_NOTIFY消息,但是VB6中,在内部已经被转换为事件,VB中的窗口是接收不到子窗口的通知消息的知道就好。lz知道了么?.... 你看的书太浅显了,要么就看错了敢问哪本深奥的书有你说的这句话,或者类似意思的。黑马还是青鸟的内部秘籍么?
      

  10.   


    扯闲篇没用,不论在一个论坛还是什么地方也好有多少个星星,自己就无敌
    星星多顶多代表灌水多
    至于到底行不行,说出的话在不在点上,明眼人一看就知道的这不怪你,因为你已经被培训班误导了。当然你周围大部分学员可能和你一样被误导很深,所以你所谓的明眼人估计都是一群瞎眼的。当然我很想知道“再有系统转发至窗口所在线程,再由线程取出消息发到窗口的 callback 过程”到底是你从哪里学来的。我们有责任让这种误人子弟的培训机构曝光下。
      

  11.   

    你说的话里面,将你的无知暴露无疑,实在没必要用你那一知半解的文字来跟我较劲了
    爱咋咋地呗消息驱动的机制怎么实现的? 其含义到底是什么?就是给你的callback里面扔消息?
    那是谁扔的?如无必要,恕不再述
      

  12.   

    消息驱动,还是比较复杂的。之前自己尝试尝试弄过一套2D引擎,想在里面做一套消息驱动的机制,发现要考虑的东西挺多。首先是获取鼠标数据,坐标啊按键啊。然后是对象层的管理,后绘制的会被先绘制的盖住,而鼠标消息应该添加到鼠标下最上层对象的待处理消息列表中。到这一层后才是对象自己的消息处理函数去消息列表中取得消息,进行处理。如果对象内部还有子对象,则也还要再进行一层处理与分配,再扔给子对象的列表中这对象层管理里面还要对各个对象的状态,内容,属性等进行管理,执行各个功能,比如改变什么属性啊,加载什么图片啊,改变坐标啊之类的,做下来累得要死。这一套东西做完后,还有最后的绘制过程,要根据上面的各种执行结果设定出来的属性和状态,层等来执行绘制。。我在想,WINDOWS中的实际流程应该也与我做的这一套差不多,不过更大规模更复杂。。手里WIN2K和WINNT的代码也不想去看,太多了如果有人有那耐心分析过这一套代码,也讲讲吧,顺便学学
      

  13.   

    谢谢大家大家,谢谢 caozhy PctGL 和 老马。caozhy PctGL 道理越辩越明,知识越学越多。争高低,论强弱,实在没有必要。 特别的感谢你们。
      

  14.   


    请问,您有关于消息驱动机制的详细资料吗?这个东西是个理解性的东西,貌似没有什么实质性的原理解释
    我也是根据长期在代码的折腾中理解的
    你可以直接看百度百科里面的 http://baike.baidu.com/link?url=jhaFHSWIFSgT7RpaaHjM3XpfKyLufLnycCMql1ucz9Dt34zqeJ-OTpAMiRgL8DpQ
    再去baidu搜搜, 哪不明白你问即可