我的Form,FormStyle设为StayOnTop
当任务栏在属性当中没有设为自动隐藏我的窗体(全屏)可以挡住,可是当任务栏设为自动隐藏后MOUSE向下任务栏就出来了,我要怎么办呀。
听朋友说自动隐藏是在注册表的什么地方可以设置,可我又不知在什么地方。

解决方案 »

  1.   

    不用很简单的
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    var
      wndHandle : THandle;
      wndClass : array[0..50] of Char;
    begin
      StrPCopy(@wndClass[0], 'Shell_TrayWnd');
      wndHandle := FindWindow(@wndClass[0], nil);
      ShowWindow(wndHandle, SW_HIDE);
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      wndHandle : THandle;
      wndClass : array[0..50] of Char;
    begin
      StrPCopy(@wndClass[0], 'Shell_TrayWnd');
      wndHandle := FindWindow(@wndClass[0], nil);
      ShowWindow(wndHandle, SW_RESTORE);
    end;end.
      

  2.   

    忘了说,我是在2000下,
    grail_(grail_) 你的方法好像只能在98下。
      

  3.   

    http://www.cpcw.com/2000/27/00272203.htm
    没有试过,不知道正确性
      

  4.   

    grail_(grail_) 的方法窗体最大化时不能扩展到原来任务栏的位置
      

  5.   

    http://www.cpcw.com/2000/27/00272203.htm也是这样
      

  6.   

    你可以找一下,这是一个很常见的问题。好象是用一个api处理的。
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      h:THandle;
    begin
      h:=findwindow('Shell_TrayWnd',nil);
      showWindow(h,sw_hide);
    end;调试通过
      

  8.   

    对,Windwos每个任务都是一个程序,只要取道它的句柄然后sw_hide就可以了!
      

  9.   

    看看DELPHI深度历险..书上有说桌面的相关东西..原理差不多
      

  10.   

    to goomoo(古木) :
      当任务栏的属性设为自动隐藏后,你的方法就没有用了。
      

  11.   

    那就这样吧。不管是否自动隐藏,都行!!procedure TForm1.Button1Click(Sender: TObject);
    var
      h:THandle;
    begin
      h:=findwindow('Shell_TrayWnd',nil);
      setWindowPos(h,HWND_BOTTOM,0,0,0,0,swp_hidewindow);
      //showWindow(h,sw_hide);
    end;
      

  12.   

    要再次显示出来,请改一句为:setWindowPos(h,HWND_BOTTOM,0,0,0,0,swp_showwindow);
      

  13.   

    to  goomoo(古木) 
      可以用了还有能解一下
      setWindowPos(h,HWND_BOTTOM,0,0,0,0,swp_hidewindow);
      和
      showWindow(h,sw_hide);
      有什么区别吗。
      

  14.   

    showWindow仅仅是显示或隐藏窗口
    setWindowPos可以控制窗口的更多,如:是否在最上边,位置和大小,是否可视等。
    请查阅 help-Windows SDK
      

  15.   

    to goomoo(古木) 
      还不能结贴,还有问题,当隐藏任务栏后,我只要用MOUSE点击一下FORM,
    任务栏又出现了。
      

  16.   

    to goomoo(古木)
      有什么办法能取消的任务栏属性当中的自动隐藏就好了。
     我在98下用这根本没这档子事,就是2000下有。