我的程序主窗口是一个密码登陆窗口,真正功能的窗口不是主窗口,最小化时只能缩到桌面的左下角,怎样才能最小化至任务栏呢?

解决方案 »

  1.   

    form.hide先隐藏窗口,
    在任务栏添加图标,如下:
    再定义:
    const
      WM_MYNOTIFY = WM_USER + 1000 ;//消息
      strNotifyTip='定时关机';//提示
      ID_MAIN = 100 ; // 定义图标的ID//以下添加图标
    Function TForm1.AddIcon(hwnd : HWND):Boolean ;
    var
      nid : NOTIFYICONDATA ;
    begin
       nid.cbSize := sizeof(NOTIFYICONDATA);
       nid.Wnd := hwnd;
       nid.uID := ID_MAIN;
       nid.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
       nid.uCallbackMessage := WM_MYNOTIFY;
       nid.hIcon := LoadIcon(hInstance,'MAINICON');
       strCopy(nid.szTip,strNotifyTip);
       AddIcon := Shell_NotifyIcon(NIM_ADD, @nid);
    end;
      

  2.   

    用Application.minimize 就可以把它最小化到任务栏上了,
      

  3.   

    非主窗体的unit中加下面的语句
    Protected
      procedure CreateParams(Var Param:TCreateParams);override;



    。procedure T****Form.CreateParams(Var Param:TCreateParams);
    begin
      Inherited CreateParams(Param);
      Param.wndParent:= GetDesktopWindow;
    end;