nikzzzz, Что даёт константа #WS_POPUP , по моему ничего... в пьюрике есть уже функция для создания дочернего окна... Нужно просто указать его, WindowID(99) Сравни значек в панели задач... Зачем создавать два цикла обработки событий? Работает, но по мне как то... и в основном цикле, всё прекрасно обрабатывается...
Сравнить можно по виду иконки в панели задач... При использовании константы, она сдвоенная (и без константы тоже), если использовать предложенный мною вариант (стандартный), она одна (как и должно быть у дочернего окна)
nikzzzz писал(а):
53689Для удобства, каждое окно на свою задачу.
Сомнительно это, но работает... У цикла нет привязки к конкретному окну, но есть приоритет... По мне, так это костыль. Разблокируй родительское окно и нажми на крестик в нем. При первом нажатии, закроется дочернее окно, при втором родительское... То есть выходим в начале из второго цикла, оказываемся в первом... Если родительское окно заблокировано, то нормально, если нет, то вариант не катит... Что происходит с первым циклом, мне не понятно... То ли он останавливается, то ли перезаписывается, но при выходе из второго, он возобновляет свою работу...
53690 У цикла нет привязки к конкретному окну, но есть приоритет... По мне, так это костыль. Разблокируй родительское окно и нажми на крестик в нем. При первом нажатии, закроется дочернее окно, при втором родительское...
Так событие-то одно, щелчок по крестику, а проанализировать, по какому окну щелкнули лень?
53690При использовании константы, она сдвоенная (и без константы тоже), если использовать предложенный мною вариант (стандартный), она одна (как и должно быть у дочернего окна)
Вот, я не правильно понял задачу, я считал, что дочернее окно должно блокировать материнское, а на иконки мне было как-то наплевать.
53691Так событие-то одно, щелчок по крестику, а проанализировать, по какому окну щелкнули лень?
Так я и говорю, что костыль... Один цикл из примера, что я выложил на том сайте, прекрасно справляется и всё отлавливает. Все равно нумерацию гаджетов нельзя вести раздельную (номер не должен переписывать из другого окна)
nikzzzz писал(а):
53692Вот, я не правильно понял задачу, я считал, что дочернее окно должно блокировать материнское, а на иконки мне было как-то наплевать.
Так блокируешь его же вручную, а не константой, которая ничего в данном случае не делает...
53693Так блокируешь его же вручную, а не константой, которая ничего в данном случае не делает...
Так в том то и проблема, что дочернее окно хотя и создается, но не блокирует материнское, поэтому и приходится это делать в ручную. Возможно, есть другое решение, но я его не знаю, задача решена, пусть даже через костыль.
Вообще указать идентификатор родителя не значит сделать его всплывающим, дочернее бывает внутри родительского плавает и не вытащишь за границу родителя или является областью родительского окна, когда визуально даже не видно никакого окна, это просто часть внутри которой создаёшь элементы и подчиняются они свойствам этого окна. Именно WS_POPUP в виндовой терминологии создаёт всплывающее дочернее окно, а к нему уже можно подвязывать другие стили, которые делают его изменяемым, сворачиваемым (над панелью задач) и т.д. Например элемент "Вкладки" нельзя создать 2 шт в одном окне (не знаю является ли правило для винды, но для AutoIt3 точно), и чтобы сделать 2 и более нужно делать дочерние окна как часть родительского, тогда в каждом дочернем можно создать свой элемент "Вкладки", а выглядеть будет как в одном окне. nikzzzz не указал его родителем поэтому видимо получается что они как два самостоятельных окна одного процесса. При блокировке окно не получает сообщения в очередь, поэтому при разблокировании он не будет обрабатывать никакие клики, вызванные во время блокировки.
Последний раз редактировалось: AZJIO (2018-05-11 12:04), всего редактировалось 2 раз(а)
53697Например элемент "Вкладки" нельзя создать 2 шт в одном окне (не знаю является ли правило для винды, но для AutoIt3 точно), и чтобы сделать 2 и более нужно делать дочерние окна как часть родительского, тогда в каждом дочернем можно создать свой элемент "Вкладки", а выглядеть будет как в одном окне.
Пьюр бейсик может... Видел пример... Нужно создать, гаджет-контейнер, а в нем объекты... Так хоть два статус бара, меню бара или разные вкладки, не проблема, да хоть три...
ну это в терминологии винды является дочерним окном. Вообще как ранее мы обсуждали элементы окна являются тоже окнами. Грубо говоря мы оперируем теми же ресурсами винды но в видении/терминологии другого автора. А при тесте пытаемся разгадать как автор интерпретатра кода создал механизмы работы. Например в AutoIt3 при создании окон есть стили по умолчанию и принудительные стили. Принудительные не убираются совсем, умолчальные заменяются в момент указания своих стилей и чтобы они не убирались их нужно доавить как +DefaultStyle (грубо говоря, название конечно другое). Если смотреть гипотетически, то добавляя ID родителя, ты делаешь дочерним окно, а добавляя #PB_Window_SystemMenu ты делаешь его явно отдельно от родительского окна, вот он сам и добавляет остальные стили угадывая намерения.
А почему программа не закрывается, во время сканирования? Что этому мешает? И можно ли закрывать? Не появится ли проблем, если завершить работу во время сканирования?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы