alwaysOnTop
"Perform the alwaysOnTop action."
|minWin|
minWin := PlatformFunction callingConvention: 'c'
function: 'SetWindowPos'
library: 'user32.dll'
parameterTypes:#(uint32 uint32 int32 int32 int32 int32 uint32)
returnType: #void.
minWin callWith:(self parentPart widget window shellHandle) with: -1
with: 0 with: 0 with: 0 with: 0 with: (1 bitOr: 2).
Но в данном случае я смог подсмотреть значения необходимых параметров в
недрах VAST, впрочем как и сам вызов. В случае же с прозрачность окна
необходимой информации в недрах VAST нет ибо эта функция появилась только в
Win2K.
Описание действий, которые необходимо выполнить, чтобы сделать окно
прозрачным есть:
Чтобы сделать диалоговое окно прозрачным, сперва необходимо создать
обычный диалог. А затем, в обработчике сообщения WM_INITDIALOG, установить
бит прозрачности в дополнительных свойствах окна, и вызвать
SetLayeredWindowAttributes с желаемым значением альфы. Программно это
выглядит так:
// Устанавливаем WS_EX_LAYERED на это окно
SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd,
GWL_EXSTYLE) | WS_EX_LAYERED);
// Делаем это окно на 70% прозрачным
SetLayeredWindowAttributes(hwnd, 0, (255 * 70) / 100,
LWA_ALPHA);
Обратите внимание, что третий параметр SetLayeredWindowAttributes
имеет значение в пределах от 0 до 255. При этом 0 делает окно полностью
прозрачным, 255 полностью НЕ прозрачным.
Функции находятся в модуле user32.dll, причём функция SetWindowLong имеет
alias SetWindowLongA. Проблемой также является то, что я не знаю значений
констант GWL_EXSTYLE, WS_EX_LAYERED и LWA_ALPHA.
Буду признателен, если кто-нибудь сможет продемонстрировать скрипт для VAST,
вызывающий функцию GetWindowLong с параметром GWL_EXSTYLE для существующего
окна, затем вызывающий функцию SetWindowLong, используя результат выполнения
предыдущей функции как один из параметров, а также вызов функции
SetLayeredWindowAttributes.
А может всё гораздо проще и я излишне заморачиваюсь?
С уважением,
Дмитрий Левенцов.
С уважением,
Дмитрий Левенцов
"Maxim Annenkov" <m...@bbt.ru> сообщил/сообщила в новостях следующее:
news:dogmvj$s36$1...@ddt.demos.su...
>
> Здравствуйте,
>
> Вот dat - файл из VAST 6.03 с апликухой, которая делает то, что вам нужно.
> Там же и пример.
>
Все описано в MSDN. Можно или купить на рынке, или в онлайне
http://msdn.microsoft.com
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/WindowsUserInterface/Windowing/Windows/WindowReference/WindowStyles.asp
"Д.Ю. Левенцов" <l...@aaanet.ru> wrote in message
news:dp2p1c$1g7j$1...@pa.aaanet.ru...