Автор Тема: [Элементы GUI] Окно поверх остальных окон, без передачи ему фокуса  (Прочитано 955 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн TpeTTep [?]

  • Новичок
  • *
  • Сообщений: 24
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Добрый вечер. Делаю что-то вроде уведомления, которое аккуратно выезжает справа, а при клике уезжает обратно. В принципе все работает, смотрится не плохо, но есть несколько нюансов. Во-первых, выезжающее окно забирает на себя фокус, чего делать конечно же не стоит. Тем не менее оно должно располагаться поверх остальных окон. Т.е работать это должно
примерно как Центр уведомлений на Windows 10. Это удобно, красиво и совсем не отвлекает от работы, игры, просмотра фильма, а закрывается простым кликом. Помогите сделать так, что бы оно выезжало поверх остальных окон, но без передачи ему фокуса. Это вообще реально?) Сам код правда получился немного колхозный, но это лишь первый вариант, так что он ещё 100500 раз переделается.

Код: AutoIt [Выделить]
#include <MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3>
#include <MetroUDF-v5.1\MetroGUI-UDF\_GUIDisable.au3>

HotKeySet("{F10}","_Exit")

$nText = "Тут находится текст оповещения."
$StringLen = StringLen($nText)*9+101
$Form5 = _Metro_CreateGUI("", $StringLen, 120, @DesktopWidth+2, @DesktopHeight/4, False)
$ClickedLabel = GUICtrlCreateLabel("", 0, 0, $StringLen, 120)
GUICtrlSetCursor(-1, 0)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlCreateIcon("C:\Users\Konstantin\Desktop\Autoit\icons\notification.ico",-1,20,40,64,64)
$Notification = GUICtrlCreateLabel($nText, 101, 61, $StringLen, 20)
GUICtrlSetColor(-1,0xFFFFFF)
GUICtrlSetFont(-1, 12, 400, 0, "Arial", 5)
GUICtrlCreateLabel("Оповещение",10, 8, 90, 20)
GUICtrlSetColor(-1,0xFFFFFF)
GUICtrlSetFont(-1, 11, 400, 0, "Arial", 5)
GUISetState(@SW_SHOW,$Form5)
SoundPlay(@WindowsDir&"\media\ring07.wav", 0)
WinMove($Form5, "", @DesktopWidth-$StringLen+2, Default, Default, Default, Random(5,10,1))


While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $ClickedLabel
         WinMove($Form5, "", @DesktopWidth+2, Default, Default, Default, Random(5,10,1))
         GUISetState(@SW_HIDE,$Form5)
         GUIDelete($Form5)
   EndSwitch
WEnd


Func _Exit()
   _Metro_GUIDelete($Form5)
   Exit
EndFunc



Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Июнь 25, 2018, 00:13:23 от TpeTTep »

Русское сообщество AutoIt


Помечен как лучший ответ пользователем TpeTTep Отправлен Июнь 25, 2018, 00:33:45

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 407
  • Репутация: 94
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0

Оффлайн TpeTTep [?]

  • Новичок
  • *
  • Сообщений: 24

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
В таком случае оно не отображается поверх остальных окон.
Попробовал смешать это дело с
Код: AutoIt [Выделить]
Вроде получилось)

Так же есть второй момент с этим "оповещением". Не знаю создавать ли новую тему или нет?
« Последнее редактирование: Июнь 25, 2018, 00:30:02 от TpeTTep »

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1437
  • Репутация: 213
  • Пол: Мужской
  • Windows 7 /10 [x64]
    • Награды
  • Версия AutoIt: 3.3.12.0
Типа так, но не так?
Код: AutoIt [Выделить]
TrayTip("Это текст заголовка", "Это текст сообщения", 5, 1)
MsgBox(4096, "", "")


Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
6 Ответов
6480 Просмотров
Последний ответ Ноябрь 21, 2009, 22:29:48
от Yashied
4 Ответов
3764 Просмотров
Последний ответ Февраль 14, 2011, 16:53:45
от `p r o x y
5 Ответов
4874 Просмотров
Последний ответ Январь 06, 2013, 19:57:21
от madmasles
5 Ответов
11652 Просмотров
Последний ответ Август 08, 2013, 16:16:30
от Yuriy
5 Ответов
4311 Просмотров
Последний ответ Сентябрь 26, 2013, 18:23:35
от MnM
0 Ответов
1894 Просмотров
Последний ответ Сентябрь 26, 2013, 17:35:09
от madmasles
4 Ответов
3125 Просмотров
Последний ответ Январь 09, 2014, 06:00:47
от madmasles
5 Ответов
2998 Просмотров
Последний ответ Май 28, 2014, 18:07:59
от madmasles
4 Ответов
680 Просмотров
Последний ответ Август 15, 2017, 14:24:20
от mv6677
1 Ответов
336 Просмотров
Последний ответ Август 22, 2017, 22:11:48
от Alofa