WNDPROC重载怎样用呀请各位高手给具体介绍或者给一个简单的小例子在此感谢了呀

解决方案 »

  1.   

    unit Unit4;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm4 = class(TForm)
        ListBox1: TListBox;
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      protected
        procedure Wndproc (var message:Tmessage);override;
      end;var
      Form4: TForm4;implementation
    uses shellapi;{$R *.dfm}
    procedure TForm4.Wndproc(var message: Tmessage);
    var
      Count, Index,hDrop:Integer;
      PFileName:PChar;
    begin
      if message.Msg = WM_DROPFILES then
      begin
        hDrop :=message.WParam;
        GetMem(PFileName,MAX_PATH);
        Count :=DragQueryFile(hDrop, MAXDWORD, PFileName, MAX_PATH-1);
        ListBox1.Items.Clear;
        for Index :=0 to Count-1 do
        begin
          DragQueryFile(hDrop, Index, PFileName, MAXBYTE);
          ListBox1.Items.Add(PFileName);
        end;
        FreeMem(PFileName);
        DragFinish(hdrop);
      end else
      begin
        inherited;
      end;
    end;
    procedure TForm4.FormCreate(Sender: TObject);
    begin
      DragAcceptFiles(Handle, true);
    end;procedure TForm4.FormDestroy(Sender: TObject);
    begin
      DragAcceptFiles(Handle, false);
    end;end.