unit Wcens;interfaceconst
  
  WM_RECE = $400 + 201;
type  TAS=packed record  
    P:ARRAY[0..3] of CHAR;
    k:ARRAY[4..160] of BYTE;  end;各位高手,请教这段代码是啥意思?我是新手,只知道这是定义了一个消息队列,TAS是一个消息的名称,
对于$400+201 ,不知道这是啥意思,
各位高手可否详细的解释一下呢 谢谢

解决方案 »

  1.   


      {$EXTERNALSYM WM_USER}
      WM_USER             = $0400;WM_USER以后一段是留个程序员自定义消息ID.
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;const  WM_RECE = WM_USER + 201;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        procedure WMRECE(var msg:TMessage);message WM_RECE;
      public
        { Public declarations }
      end;var
      Form1: TForm1;
    implementation{$R *.dfm}{ TForm1 }procedure TForm1.WMRECE(var msg: TMessage);
    begin
      ShowMessage('自定义消息');
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      PostMessage(Handle,WM_RECE,0,0);
    end;end.
      

  3.   

    WM_USER=$0400是windows自定义的,
    $0400是十六进制,是十进制的1024
     WM_RECE = WM_USER + 201;
    WM_RECE = 1225;所以
      PostMessage(Handle,1225,0,0);
    也能得到上面相同的结果.
      

  4.   

    是不是消息的ID 号就是十进制的WM_User+201=1225,201是不是可以变化的 可以是301 ,402啊
    但是400是固定的啊
      

  5.   

    const
      
      WM_RECE = $400 + 201;//声明了一个消息常量,这个消息是用户自定义消息,非系统或是标准消息;$400(0x0400H)是系统保留给开发人员的一个消息常量,用户自定义消息均从以此值为基量,并进行递增.
    type  TAS=packed record //此处声明了一个紧缩型的记录体;紧型记录类型的大小是按用户使用的具体字节确定的. 
        P:ARRAY[0..3] of CHAR;
        k:ARRAY[4..160] of BYTE;  end;
      

  6.   

    TAS=packed record  
        P:ARRAY[0..3] of CHAR;
        k:ARRAY[4..160] of BYTE;
      end;
    只是定义了一个结构,并不是消息队列,消息队列是系统提供,而且提供了函数访问。