望高手指点

解决方案 »

  1.   

    宏定义WM_COMM 为用户自定义消息,不更改消息映射的.
    下面摘自MSDN:
    The WM_USER constant is used by applications to help define private messages, usually of the form WM_USER+X, where X is an integer value. There are five ranges of message numbers: Range Meaning 
    0 through WM_USER – 1 Messages reserved for use by the system. 
    WM_USER through 0x7FFF Integer messages for use by private window classes. 
    WM_APP through 0xBFFF Messages available for use by applications. 
    0xC000 through 0xFFFF String messages for use by applications. 
    Greater than 0xFFFF Reserved by the system for future use. 
      

  2.   

    #define WM_COMM WM_USER+100
    ===============================
    因为 windwos 对小于 WM_USER 的消息认为 windows 系统消息,故自定义消息要 >= WM_USER
    SO,人们一般用  WM_USER 或  WM_USER+上某个值 表明“这是不是一个 WINDOWS 系统消息”当然,自定义消息有最大值的.
      

  3.   

    自定义的消息消息ID 一般取 WM_USER + x
      

  4.   

    用户自定义消息要和系统消息区分开,所以才要定义#define WM_COMM WM_USER+100 
    消息映射是把你定义的消息和对消息的处理的函数挂钩啊
    因为windows基于消息循环的,所以只要你向系统发送你定义的消息,系统就会自动调用与此消息相关的处理函数
    我是这么理解的
      

  5.   

    那么WM_COMM是不是可以自己随便起名字了?比如我叫W_MY可以吗?
      

  6.   

    TO:bat603(蝙蝠) 
    ================
    当然可以,不过不能与已有重复吧(名称及WM_USER + x中的 x)
      

  7.   

    #define WM_COMM WM_USER+100这是一个自定义消息,消息名称就是WM_COMM,名字可以随便改,比如:WM_ABC等等,但是名字不能与已经有的消息名称重复,还有,WM_USER+100,是一个值,是用来区别不同消息的,为了不和系统已经有的值发生冲突,推荐的是使用WM_USER开始的值,后面的值,依次加上一个数就可以了。
    楼主可以参考自定义消息的相关文章。