unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;type
  TForm1 = class(TForm)
    Image1: TImage;
    Memo1: TMemo;
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
        procedure Createparams(var Params: TCreateParams);override;
        procedure WMDropFiles(var Msg:TWMDropFiles); Message WM_DropFiles;
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}
procedure TForm1.Createparams(var Params: TCreateParams);
begin
   Inherited CreateParams(Params);
   With Params do
   begin
    XStyle:=ExStyle or WS_EX_TOPMOST OR WS_EX_ACCEPTFILES OR WS_DLgFrame;
    WndParent:=GetDesktopWindow;
    end;
end;procedure TForm1.WMDropFiles(var Msg: TWMDropFiles);
begin
        //显示Msg消息
        Memo1.Lines.Add(InttoStr(Msg.Msg));
        Memo1.Lines.Add(InttoStr(Msg.Drop));
        Memo1.Lines.Add(InttoStr(Msg.Unused));
        Memo1.Lines.Add(InttoStr(Msg.Result));
end;procedure TForm1.Button1Click(Sender: TObject);
begin
        Application.Terminate;
end;end.该程序将Form1置顶显示,我想把他做成类FlashGet的悬浮窗口形式,但是很奇怪
执行结果是整个窗体都反过来了,看上去很滑稽,小生菜鸟,请各位大虾帮忙看看
分数嘛,嘿嘿~~~~~~~~Msg.Drop  是否表示拖曳进来的文件??

解决方案 »

  1.   

    应该是EXStyle:=ExStyle or WS_EX_TOPMOST OR WS_EX_ACCEPTFILES;但是任务栏上却出现两个窗口,一个是Project1,另外一个是 Form1;
      

  2.   

    Inherited CreateParams(Params);
       With Params do
       begin
        XStyle:=ExStyle or WS_EX_TOPMOST OR WS_EX_ACCEPTFILES OR WS_DLgFrame;
                       这行注释掉再试。
                 //WndParent:=GetDesktopWindow;
        end;