Проблема с SystemTray

Тема в разделе "WASM.BEGINNERS", создана пользователем Andrew_Kuz, 8 июл 2007.

  1. Andrew_Kuz

    Andrew_Kuz УсамаБэнЛаден

    Публикаций:
    0
    Скажити пож., как правильно "свернуть" окно в трэй
    У меня после минимизации окно сворачивается, прячется, но остаётся кнопка на TaskBar'э (ну на панеле задач.)

    Вот мой код:
    Код (Text):
    1.      
    2.                mov note.cbSize,sizeof NOTIFYICONDATA
    3.                mov eax,hWnd
    4.                mov note.hwnd,eax
    5.                mov note.uID,0
    6.                mov note.uFlags,NIF_ICON+NIF_MESSAGE+NIF_TIP
    7.                mov note.uCallbackMessage,WM_SHELLNOTIFY
    8.                invoke LoadIcon,hInstance,2
    9.                mov note.hIcon,eax
    10.                invoke lstrcpy,addr note.szTip,addr AppName
    11.  
    12.                 invoke PostMessage,hWnd, WM_SYSCOMMAND, SC_MINIMIZE,0
    13.      ------->  invoke ShowWindow,hWnd,SW_HIDE
    14.                 invoke Shell_NotifyIcon,NIM_ADD,addr note
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Чтобы убралась кнопка, нужно прятать главное окно (top-level):
    Код (Text):
    1.     invoke FindWindow,szCalc,ebx
    2.     mov     esi,eax
    3.     invoke PostMessage,esi,WM_SYSCOMMAND,SC_MINIMIZE,ebx
    4.     invoke ShowWindow,esi,SW_HIDE
    5.     invoke Sleep,2000
    6.     invoke ShowWindow,esi,SW_SHOWNORMAL
    7.  
    8. szCalc db 'SciCalc',0
     
  3. Andrew_Kuz

    Andrew_Kuz УсамаБэнЛаден

    Публикаций:
    0
    SciCalc - ЭТО НАЗВАНИЕ ОКНА? иЛИ это это таскбарное окно???????
    Так я и убираю главное окно
    Код (Text):
    1. invoke PostMessage,hWnd, WM_SYSCOMMAND, SC_MINIMIZE,0
    2. invoke ShowWindow,hWnd,SW_HIDE
    Но кнопка опять выскакивает
     
  4. Andrew_Kuz

    Andrew_Kuz УсамаБэнЛаден

    Публикаций:
    0
    Я вот нашёл код на Delphi:
    Код (Text):
    1. ActionIcon (1,Application.Icon); //  Добавляем значок в трей
    2. ShowWindow(Handle,SW_HIDE); // Скрываем программу
    3. ShowWindow(Application.Handle,SW_HIDE); // Скрываем кнопку с TaskBar'а
    НО Я НЕ ПОНЕМАЮ Application.Handle - это что? Дельфовая структура??? Handle то чей?....
    :dntknw:
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    SciCalc - это класс главного окна калькулятора.

    Application.Handle - это как раз-таки хендл главного окна в делфи, оно скрытое и служит для служебных целей, вроде Application.Title - надпись кнопки на панели задач и т.п. А "главное окно" в делфи - всего лишь первое после этого.

    invoke ShowWindow,[hwnd],SW_MINIMIZE
    invoke ShowWindow,[hwnd],SW_HIDE
     
  6. assorted

    assorted New Member

    Публикаций:
    0
    invoke ShowWindow, [hWnd],SW_HIDE

    больше ничего не требуется.

    Application.Handle - hInstance Зачем его трогать?
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    А, ошибся. Но остальное про главное окно делфи - верно.