消息中的WPARAM与LPARAM有什么区别?(包括概念和用法)
有的书上说没有什么区别,但我在程序里互换了它们之后,发现的确存在很大的区别!请问它们之间的区别是什么,到底什么情况该用哪个什么时候不该用哪一个?
  谢谢!

解决方案 »

  1.   

    在Win32 API中,WPARAM和LPARAM都是32位,所以没有什么本质的区别,如果是你定义的消息,愿意怎么使都行,Windows的消息必须参考帮助才能知道具体的含义。在Win 3.x中,WPARAM是16位的,而LPARAM是32位的,所以LPARAM通常被用来传递地址,这个习惯在Win32 API中仍然能够看到。
      

  2.   

    要根据传递的消息来说。对应的消息wp和lp有不同的意思。
    如:
    WM_KEYDOWN 这个消息
    wParam;明确按键。
    lParam:一些附加信息,如按键重复次数,等。
      

  3.   

    随便写一个吧:
    var arr:array [0..254] of char ;
    begin
      SendMessage(handle,WM_GETEXT,SizeOf(arr),LongInt(@arr[0]));
      ShowMessage(arr);
    end;
    这里WM_GETTEXT 的wparam表示得到的字符的最大值,lparam用来放得到的字符。
      

  4.   

    请问在一个FORM里放一个EDIT,想截获键盘在EDIT里输入 的消息该怎么声明一个过程,
    好像用 procedure catch(message:tmessage);message wm_keydown;   不行呀!该怎么做呢?
      

  5.   

    请问在form里面声明wm_keydown是不是能捕获所有键盘?包括在文本框里面输入的消息?
    请高手回答!!!!拜托!!!