var    wndhandle:thandle;
       wndclass:array[0..50]of char;
请问下面三条语句前两条的具体含义,在线等候,请各位一一道来
   还有
     @的具体含义:取地址? 为什么要定义数组[0..50]?为什么字符串是'shell_traywnd'    strpcopy(@wndclass[0],'shell_traywnd');
    wndhandle:=findwindow(@wndclass[0],nil);
    showwindow(wndhandle,sw_hide);

解决方案 »

  1.   

    第一条语句,拷贝字符串'shell_traywnd'到wndclass[0]这个里面@的含义就是取地址。数组你也可以不定义为[0..50]可以定义为pchar,字符串'shell_traywnd'是因为后面下一条语句要用到。
    第二条语句findwindow的含义就是查找当前系统中窗口类名为'shell_traywnd'(用到了吧)的窗口,找到以后把句柄返回给wndhandle
      

  2.   

    用这样吗?
    showwindow(Findwindow('shell_traywnd',nil),sw_hide)就可以了啊
      

  3.   

    (1)'Shell_TrayWnd'是任务栏窗口的名称,可以认为是TForm.Name属性;
    (2)strpcopy是将'Shell_TranWnd'字符串赋值到wndclass字符数组中,因为下面FindWindow函数需要一个字符串指针来获得需要查找的窗口的Name属性;还有另外一种方法,参加例子。
    (3)@用来获取数组第一个元素的地址;
    (4)ShowWindow是用来按照参数显示指定的窗口。
    (5)可以仅通过按下Alt+Tab来切换应用程序就可以迫使隐藏的任务栏显示,而无需调用恢复函数。例子:
    //---------------------------------------------------------------------------
    // 隐藏任务栏procedure HideTaskBar;
    var
      TaskBarHandle: THandle;
      TaskBarClsName: PChar;
    begin
      TaskBarClsName := PChar('Shell_TrayWnd');       // Task Bar fixed class name;
      TaskBarHandle := FindWindow(TaskBarClsName, nil);
      SetWindowPos(TaskBarHandle, 0, 0, 0, 0, 0, SWP_HIDEWINDOW);
    end;//---------------------------------------------------------------------------
    // 显示被隐藏的任务栏
    procedure RestoreTaskBar;
    var
      TaskBarHandle: THandle;
      TaskBarClsName: PChar;begin
      TaskBarClsName := PChar('Shell_TrayWnd');       // Task Bar fixed class name;
      TaskBarHandle := FindWindow(TaskBarClsName, nil);
      SetWindowPos(TaskBarHandle, 0, 0, 0, 0, 0, SWP_SHOWWINDOW);
    end;
      

  4.   

    谢谢,还有一个问题:inherited 在程序中起什么作用?