为什么用SendMessage和PostMessage发送消息要传送WPARAM wParam,LPARAM lParam两个参数?我看许多消息都不只需要用到两个参数,于是不得不以指针方式传递参数既然这样,为什么windows设计时要选择使用两个,而不是1个,3个,或者更多个?

解决方案 »

  1.   

    2个,好像是为了考虑向前(16位Windows)兼容的问题而保留的。
      

  2.   

    WPARAM   A value passed as a parameter to a window procedure or callback function: 16 bits on Windows versions 3.0 and 3.1; 32 bits on Win32. 
    LPARAM   A 32-bit value passed as a parameter to a window procedure or callback function.
      

  3.   

    这个问题要去为Microsoft,呵呵!
      

  4.   

    因为这是个windows遗留问题,以前在16位时代,WPRARM代表的是WORD类型,是16位无符号短整型,LPRARM是32位有符号
    长整型,但到了32位时代,WPARAM,LPARAM都是32位,WPARAM是作为UINT,而LPARAM是LONG