/p 同时还有一个参数!hdc就是那个小窗口的句柄
知道了这个就好办了。用bitblt()过去就行了。

解决方案 »

  1.   

    能不能详细点。我发现在WIN98下此参数后还有一串数字,但在WIN2000下却只有一个/p,倒是/c后面有了一串数字,不知怎么回事。
      

  2.   

    To TechnoFantasy:
      这个我当然知道。问题是获得句柄后如何使用。To Kingron:
      拜托了,你是老大,帮帮忙吧,能不能详细说明?
      

  3.   

    /p 后面跟的是预览窗口的局柄,不是hdc,所以你需要利用GetClientRect 获得该窗口
    的坐标,然后设定你自己窗口的Style为 WS_CHILD 。然后利用Setparent将自己的预览
    窗口设定为系统提供给你的窗口局柄。然后利用SetWindowsPos将自己窗体的位置设定
    到你获得的系统预览窗口的位置。
      

  4.   

    你的意思是将自己的窗体的大小位置设置成和预览区域的一样,从视觉效果上看就好象是用WINDOWS的预览窗口显示一样,是吗?其它屏幕保护程序都是这样吗?我看不一定吧。因为在它的预览窗口上点右键时会弹出“这是什么”的菜单,而你的方法会弹出这个菜单吗?
      

  5.   

    比较搞笑的:
    在2000种测试通过。如果用Bitblt()一幅图片也可以哦,实在不行,就用一个form也可以,然后设置form的边框bsnone,用一个Image铺满Form也就行了。
    :)
    program Project1;uses
      Forms,sysutils,
      Unit1 in 'Unit1.pas' {Form1};{$R *.RES}
    var
      hwnd:integer;begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      if ParamStr(1) = '/p' then
      begin
        Hwnd := StrToInt(ParamStr(2));
        Form1.ParentWindow := Hwnd;
        Form1.Visible := True;
        form1.Left := 0;
        form1.Top := 0;
      end;
      Application.Run;
    end.
      

  6.   

    To Kingron:
        还是这种方法呀,好吧,让我试一下。
      (为什么是 "比较搞笑的" ?)