Конференция "WinAPI" » TopMost и Пуск
 
  • xteam777 (12.05.16 18:59) [0]
    Создаю топмост окно следующим образом

    CreateWindowEx(WS_EX_TOPMOST ...

    SetWindowLong(my_hwnd, GWL_EXSTYLE, GetWindowLong(black_hwnd, GWL_EXSTYLE) or WS_EX_LAYERED or WS_EX_TRANSPARENT or WS_EX_TOPMOST or WS_EX_NOACTIVATE);

    Все нормально, но. При щелчке на кнопку Пуск, вся панель задач вместе с открытым меню Пуск появляется и через некоторое время исчезает.

    Как можно жто предотвратить?
  • xteam777 (12.05.16 19:03) [1]
    Пробовал ловить WM_WINDOWPOSCHANGED, но оно не приходит моему окну. Также не помогает глобальный хук через Dll на это сообщение с установкой PWindowPos(Msg.LParam)^.flags := SWP_NOZORDER;
  • xteam777 (12.05.16 20:33) [2]
    Еще может кто знает как у Shell_TrayWnd убрать стиль WS_EX_TOPMOST?
    Этот код не работает.

     h := FindWindowEx(0,0,'Shell_TrayWnd',nil);
    {$IFNDEF WIN64}
     SetWindowLong(h, GWL_EXSTYLE, WS_EX_LEFT or WS_EX_LTRREADING or WS_EX_RIGHTSCROLLBAR);
    {$ELSE}
     SetWindowLongPtr(h, GWL_EXSTYLE, WS_EX_LEFT or WS_EX_LTRREADING or WS_EX_RIGHTSCROLLBAR and not WS_EX_TOPMOST);

  • Игорь Шевченко © (13.05.16 09:26) [3]

    > Этот код не работает.


    А с чего бы ему работать ?

    Давить надо таких Кулибиных, чтобы не писали всякое, раз не могут.
  • xteam777 (13.05.16 11:25) [4]
    Ваш ответ очень помог. Спасибо
 
Конференция "WinAPI" » TopMost и Пуск
Есть новые Нет новых   [118231   +25][b:0][p:0.001]